面向对象
java是一门面向对象的编程语言。
结构化开发是面向功能划分软件结构的,程序设定是从顶向下的开发,最小的子系统是方法。结构化开发在设计之初已经考虑了每个功能该怎么划分,如果某个功能升级或者修改了,就需要从顶而下的看一遍,制约了软件的可维护性和可扩展性。
而面向对象的开发是把软件系统看作各种对象的集合,某一个功能升级或修改,对象是不会变的,所以系统结构较稳定,子系统相对独立,软件可重用性、可维护性和可扩展性都更强。
对象
世间万物皆可为对象。
对象是用来描述客观事物的一个实体,它由一组属性和方法构成。
属性就是对象具有的各种特征,每个对象的每个属性都拥有特定值。比如每个人的姓名、身高都不一样。
方法就是对象执行的操作(行为)。比如顾客会购物这种行为。
类
类是具有相同属性和方法的一组对象的集合,类是对象的抽象,对象是类的具体化。
Java中所有程序都是以类(class)为组织单元。在Java中定义类的语法为:
public class 类名{
//定义属性(变量),也称成员变量
属性1的数据类型 属性1;
···
属性n的数据类型 属性n;
//定义方法(操作),也称成员方法
方法1;
...
方法m;
}
定义类的顺序:
定义类的名字 ——>定义类的属性——>定义类的方法
一个java文件中可以定义多个类,但只能定义一个public的类,并且文件名要与public的类名相同。
类图
可以使用类图来描述类,用于设计和分析类,也更加直观、容易理解。
图中最上面Dog为类名,中间为属性,有String类型的name、int类型的health、int类型的love、String类型的strain属性,最下面的print()是一个没有返回值的方法,返回值类型为void。图中+号的意思是访问修饰符为public,-号则为private。
new实例化对象
定义完类之后,就可以在其他类中通过new关键字创建实例化的对象。
实例化对象的语法为:
类名 对象名 = new 类名();
例如:Student stu = new Student();
实例化对象后,就可以通过使用"."运算符引用对象的属性和方法。
引用属性: 对象名.属性;
例如:stu.name = “张三”; //给stu这个对象的name属性赋值
引用方法: 对象名.方法名();
例如: stu.introduce(); //调用stu对象的introduce方法
由此可见,类的方法是个黑匣子,我们在调用方法的时候看不到方法的具体代码,但这个方法完成了某个特定的应用程序功能,若方法有返回值,则返回了结果。类的方法定义了类的某种功能。
方法的调用
类方法之间是允许互相调用的,不需要知道方法的具体实现,实现重用,提高效率。
情况 | 举例 |
---|---|
Student类中的方法a()调用Student类中的方法b(),直接调用 | public void a{ b(); } |
Student类中的方法a()调用Teacher类中的方法b(),先创建类对象,然后使用“.”调用 | public void a{ Teacher t = new Teacher(); t.b(); } |