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

UML图

UML(Unified Modeling Language Diagram,UML),它是一个结构图,用来描述一个系统的静态结构。一个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类声明的对象,那么A和B的关联是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。

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

依赖关系

如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B。如果A依赖于B,那么UML通过使用一个虚线连A和B的UML图,虚线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的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类声明的对象,那么A和B的关联是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。

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

依赖关系

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

时间: 2024-10-03 13:27:45

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

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

[喵"的Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final类,主要用于字符串的处理. 1.1 不可变性 String内的字符串是不可变的,每一次修改都会重新生成一个新的String对象实例. 例: 1 // 在堆中会创建一个"Hello"字符串实例,把地址赋给对象a 2 String a = new String("Hello&

java面向对象编程(1)-类与对象

1.问题的提出      张老太养了两只猫猫:一只名字叫小白,今年3岁,白色.还有一只叫小花,今年100岁,花色.请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色.如果用户输入的小猫名错误,则显示张老太没有这只猫. //用前面学习过的知识写出代码如下: public class Demo107{ public static void main(String []args){ int a=49;//输入的名字49,50 int cat1age=3; //第一只猫 String

关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)

JAVA的基础语法等都跟C有很大的相似之处,所以这里就不多啰嗦了.直接从数组开始. 数组: 1.声明 int [] a; 在声明的过程中,并没有分配空间给数组.我们可以在声明的同时,用new来分配相应的空间 int [] a = new int[100]; 这里开辟了一个空间为100大小的数组,内存分配也完成了. 我们可以在声明的同时也确定元素个数 int [] a = new int[]{1,3,5,7,9}; 面向对象(重点) class Human{ int height; void br

java面向对象基础(二)

*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h

UML图表示类与类之间的关系

类和类之间的关系(细分) 1.泛化关系(类与类之间的继承.接口与接口之间的继承.A is a B) 2.实现关系(A like a B)  3.关联关系(A has a B)在A对象中有B对象的引用 单项关联 双向关联  4.聚合关系(是一个特殊的关联关系,整体和部分之间的关系,整体不会决定部分的生命周期)  5.合成关系(是一个特殊的关联关系,整体和部分之间的关系,整体会决定部分的生命周期)  6.依赖关系(主要体现在局部变量上,类和类体中的局部变量之间的关系,方法执行结束,该局部变量内存就消

对象序列化——Java面向对象基础(30)

1.对象序列化的目的:持久化对象数据 2.对象序列化的条件:实现序列化的接口Serializable import java.io.Serializable; public class MyObject implements Serializable{ /** * 实现序列化接口,才能持久化 */ //serialVersionUID用于标识该类,系统自动生成 private static final long serialVersionUID = -765378581853551685L; p

java面向对象基础知识

一.面向对象与面向过程的区别: ①所处的角色不同:前者指挥者,后者执行者:②所需知道的事情不同:前者知道哪些是做这些事情的人就可以,不需了解具体的事情操作的过程.后者需要具备应有的技能来做这些事情. 二.面向对象的基本操作过程 指挥者采用面向对象思想,通过创建类,来创建统一的属性值[成员属性]和(做事的)方法[成员方法]. 通过创建的类或者jdk已有的类,来创建具体的对象,属性值明确,方法明确. 举例:创建类 1 package com.oracle.demo02; 2 3 public cla