Java类与对象
面向过程与面向对象
面向过程编程: 从解决问题的每一个步骤入手,适合于解决比较小的简单问题。
程序 = 算法+数据。
面向对象编程:按照现实世界的特点来管理复杂的事物,把它们抽象为一个对象,具有自己的状态和行为,通过消息的反应来完成一定的任务。
程序 = 对象+消息。
面向对象三大特性:
封装 :
将其信息属性和方法具体实现隐藏起来,只提供调用方法的接口,既封装。
继承:
将一个已有类中的属性和方法保留,可再加上自己特有的属性和方法形成一个新类,既继承。
多态:
指同名但有不同的具体实现的多个方法同时存在一个程序中。有两种是方法:重载和覆盖。
类和对象
类(Class)是对一组具有相同属性、操作和关系的同类事物的描述,是抽象的、概念上的定义。
对象(Object)是实际存在的该类事物的每个个体,因而也称实例(instance)。
例如:人类是一个类,而我们日常说的人是人类的一个实例;
建筑图纸是一个类,而建的每一栋楼是建筑图纸的一个实例。
类的定义:
类主要定义类的属性(变量)、方法和关系。
类由类声明和类体构成;格式:
修饰符 class 类名 [extends 父类名][implements 接口名]{
类型 成员变量;
……
修饰符 类型 方法(参数列表){
类型 局部变量;
方法体;
……
}
}
对象的创建
A、对象的声明
类的名字 对象的名字
Person p1;
B、对象的实例化和初始化
new关键字实例化已经声明的对象,并在堆中分配内存空间,
Person p1 = new Person(“Tom”,0);
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型,如上面的Person及前面讲过的数组。
对象的调用方法:
对象名.变量名
对象名.方法名
class TestPerson{
public static void main(String[] args){
Person p1 = new Person();
Person p2 = new Person();
p1.age = 30;
p1.shout();
p2.shout();
}
}
对象的比较
equals和 == 的应用
object1.equals(object2)
比较两个引用数据类型句柄所指对象的内容是否一样
是比较两个对象,而非两个基本数据类型的变量
object1 == object2
比较两个引用数据类型句柄是否是指向同一对象,即这两个句柄所指向的内存地址是否一样。
比较两个相同基本数据类型的值
基本数据类型的直接用“==”来比较两个值是否相等。
int a = 3,b=3; boolean c = (a==b);
c = true;