优点:
隐藏实现细节
把一个大型的开发任务,分割成很多小型的(互不影响的)开发任务。
把并行开发,变为可能。提高的提高了开发效率。
特性:封装、继承、多态
类:具有相同的状态和相同的行为的一组对象的集合
用属性表示对象的状态,用方法表示对象的行为
类是对象的模板,对象是类的具体实例;类是对多个对象进行综合抽象的结果,是实体对象的概念模型,一个对象就是一个类的实例
定义类就相当于定义了一个新的数据类型,这个数据类型的名称就是类名
对象所拥有的特征
对象执行操作的行为
类的对象可以调用类中的成员。如类的属性、类的方法
创建对象就相当于定义了一个变量,变量名是对象名,变量的类型是被实例化的类
类的成员包括属性和方法,也称作成员变量和成员方法
定义:在一个类中定义多个同名的方法,每个方法具有不同的参数类型、参数个数或参数顺序
特点:
调用:实参与形参在类型、个数、顺序上一一匹配
优点: 可以根据参数的不同,采用不同的实现方法,简化了调用方法的代码
当类创建一个对象时会自动调用该类的构造方法
构造方法:默认构造方法,自定义构造方法
构造方法同样可以重载,即在同一个类里定义多个重载构造方法
成员变量:直接定义在类的内部,方法的的外部的变量
局部变量:定义在方法内的变量,局部变量在使用时必须初始化
成员变量和局部变量区别
包也是一种封装机制
同一包 | 不同包中 | |
---|---|---|
public | 可以使用 | 可以使用 |
默认(不使用权限修饰符) | 可以使用 | 不能使用 |
位置 | public | protected | 默认(不使用) | private |
---|---|---|---|---|
同类访问 | 可 | 可 | 可 | 可 |
同包其他类访问 | 可 | 可 | 可 | 否 |
同包子类访问 | 可 | 可 | 可 | 否 |
不同包子类访问 | 可 | 可 | 否 | 否 |
不同包非子类访问 | 可 | 否 | 否 | 否 |
访问修饰符不能用于方法中声明的变量或形参。因为方法中声明的变量或形参作用域仅限于该方法
n个对象中的某些数据需要这n个对象共用,需要使用static修饰
静态方法中不能直接访问实例变量和实例方法
在实例方法中可以直接调用类中定义的静态变量和静态方法
JVM把内存划分为:方法区、堆区、栈区、静态区、常量区
this关键字是对一个对象的默认引用。每个实例方法内部都有一个this引用变量,指向调用这个方法的对象
(1)、使用this调用成员变量,解决成员变量与局部变量的同名冲突
private String name; public void setName(String name){ this.name=name; 或者 name=name; }
(2)、使用this调用成员方法
public void eat(){} public void work(){ this.eat();}
(3)、使用this调用重载的构造方法,只能在构造方法中使用,且必须是构造方法中的第一条语句
public void Persion(String name){ this.name=name; } public void Persion(String name,int age){ this(name); this.age=age; }
因为this是在对象内部代表自身的引用,所以this只能调用实例变量、实例方法和构造方法,不能调用类变量、类方法、局部变量