java 面向对象基础 UML图 构造方法 对象 参数传值 关联关系 依赖关系

来源:互联网 发布:淘宝衣服评价语 编辑:程序博客网 时间:2024/04/30 08:26

UML

UMLUnified Modeling Language DiagramUML),它是一个结构图,用来描述一个系统的静态结构。一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图、关联关系(Association)的UML图、依赖关系(Dependency)的UML图和实现关系(Realization)的UML图。


第一层是名字层,如果类的名字是常规字形,表明该类是具体类

如果类的名字是斜体字形,表明该类是抽象类(后续会讲到抽象类)。

第二层是变量层,也称属性层,列出类的成员变量及类型。格式是“变量名:类型”。

第三层是方法层,列出类中的方法。格式是“方法名字:类型”。

 

构造方法

构造方法用于对对象中的所有成员变量进行初始化

构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同,并且没有返回值,也不需要使用关键字void进行标识。

public class Apple {

     public Apple() { // 构造方法

     }

}

构造方法用于对对象中的所有成员变量进行初始化,在创建对象时立即被调用

 

对象

对象是对类的一个具体描述,是一个客观存在的实体。万物皆对象,也就是说任何事物都可看做对象,如一个人、一个动物,或者没有生命体的轮船、汽车、飞机,甚至概念性的抽象,如公司业绩等等。

 

对象的创建

对象的声明

声明对象的一般格式如下:

类名 对象名;

类名:必选,用于指定一个已经定义的类。

对象名:必选,用于指定对象名称,对象名必须是合法的Java标识符。

声明Apple类的一个对象redApple的代码如下:

Apple  redApple;

 

实例化对象

在声明对象时,只是在内存中为其建立一个引用,并置初值为null,表示不指向任何内存空间。

声明对象以后,需要为对象分配内存,这个过程也称为实例化对象。在Java中使用关键字new来实例化对象,具体语法格式如下:

对象名=new 构造方法名([参数列表]);

对象名:必选,用于指定已经声明的对象名。

类名:必选,用于指定构造方法名,即类名,因为构造方法与类名相同。

参数列表:可选参数,用于指定构造方法的入口参数。如果构造方法无参数,则可以省略。

在声明Apple类的一个对象redApple后,可以通过以下代码为对象redApple分配内存(即创建该对象):

redApple=new Apple();//由于Apple类的构造方法无入口参数,所以省略了参数列表

在声明对象时,也可以直接实例化该对象:

Apple  redApple=new Apple();

 

 

对象的使用

通过使用运算符.实现对成员变量的访问和成员方法的调用

语法格式为:

对象.成员变量

对象.成员方法()

 

对象的销毁

Java中则不需要手动完成这项工作。

Java提供的垃圾回收机制可以自动判断对象是否还在使用,并能够自动销毁不再使用的对象,收回对象所占用的资源。

 

类与程序的基本结构

一个Java应用程序是由若干个类组成,这些类可以在一个源文件中,也可以分布在若干个源文件中,如图所示。


Java应用程序中有一个主类,即含有main方法的类main方法是程序执行的入口,也就是说想要执行一个Java应用程序必须从main方法开始执行。在编写一个Java应用程序时,可以编写若干个Java源文件,每个源文件编译后产生若干个类的字节码文件。

当解释器运行一个Java应用程序时,Java虚拟机将Java应用程序的字节码文件加载到内存中,然后再由Java的虚拟机解释执行。

Java程序以类为“基本单位”,从编译的角度看,每个源文件都是一个独立编译单位,当程序需要修改某个类时,只需要重新编译该类所在的源文件即可,不必重新编译其他类所在的源文件,这样非常有利系统的维护。从软件设计角度看,Java语言中的类是可复用的,编写具有一定功能的可复用代码在软件设计中非常重要。

 

参数传值

Java程序中,如果声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时实际传递给形参的参数值被称为实参。

 

传值机制

Java方法中的参数传递方式只有一种,也就是值传递。

对于基本数据类型的参数,向该参数传递值的级别不能高于该参数的级别,比如,不能想int型参数传递一个float值,但可以向double型参数传递一个float值。

当参数是引用类型时,传递的值是变量中存放的“引用”,而不是变量所引用的实体。当两个相同类型的引用型变量,如果具有同样的引用,就会用同样的实体,因此,如果该表参数变量所引用的实体,就会导致原变量的实体发生同样的变化;

 

类的关联关系和依赖关系的UML

如果A类中成员变量是用B类声明的对象,那么AB的关联是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。

如果A关联于B,那么UML图通过一条实线连接ABUML图,实线的起始端是AUML图,终点端是BUML图,但终点端使用一个指向BUML图的方向箭头表示实线的结束。

 

依赖关系

如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么AB的关系是依赖关系,称A依赖于B。如果A依赖于B,那么UML通过使用一个虚线连ABUML图,虚线的起始端是AUML图,终点端是BUML图,但终点端使用一个指向BUML图的方向箭头表示虚线的结束。



0 0