一、类(引用数据类型,又叫抽象数据类型)
1、定义:现实世界中具有相同属性和行为的物理实体的抽象。
2、类=属性+方法
public class 类名 {
}
(1)属性:访问权限修饰符 数据类型 变量名
private String name;
(2)方法([ ]中的都可省略)
[访问权限修饰符] [修饰符] 返回值类型 方法名(数据类型 形参,...) {
方法体;
}
public static void main(String[] args) {
}
1>访问权限修饰符
2>修饰符
3>返回值类型:return值不会自动类型转换
4>方法名要遵守标识符规则,首字母小写
5>形参列表:它的决定因素是数据类型,不是参数名称;形式参数是局部变量,作用域是本方法体内,方法运行结束就释放内存空间
6>方法体:代码从上往下依次执行,遇见return就结束,如果没有遇见,代码执行完会自动结束
二、对象(实例)
1、定义:现实世界中某个具体的物理实体,每个对象都包含特定的属性和行为。
要想有一个对象,首先定义类,对象是由类这个模板创建出来的。
2、实例化对象:
类 对象名(用变量来接收,并通过变量来访问) = new 类( );(就是创建出来的对象)
(new是一个运算符,作用是开辟空间并创建一个对象,还为属性赋初始值)
Scanner input = new Scanner( );
3、访问属性和访问方法
三、抽象、实例化
四、面向对象的三大特征:封装、继承、多态
1、封装:
//属性
//构造方法
//getter and setter
(1)定义:就是将属性(数据)和处理这些属性(数据)的行为(方法)结合起来,仅对外公开接口以达到信息隐藏的目的。
(2)好处:简单(调方法就可以),安全
(3)如何封装:
1>加private
2>写访问属性的方法:getter and setter(每个属性都要有get和set方法)
读:public String getName( ){
return this.name;
}
写:public void setName(String name) {
this.name = name;
}
(4)this
(5)形参
基本数据类型传过去就是把值复制过去了,自身不会改变
这里sumInt方法的形参是将numOne值复制过来,所以numOne没有改变
打印结果:10 21
引用数据类型传过去就是把地址传过去了
这里addWeight的形参是将s1这个对象的地址复制过来,通过地址可以改变属性的值(和c中的指针一样)
打印结果:20.0 55.0
(6)方法的重载:同一个类中,方法名相同,参数的个数、类型、顺序不同,称为方法的重载
1>Java中如何判断方法是否是同一个:
方法名是否相同;形参列表是否相同(参数个数、参数类型、参数顺序)
2>用法:功能相似,参数不同时可以考虑用方法重载
3>重载必须满足的条件(重要):在同一个类中;方法名相同;参数列表不同(参数个数、参数类型、参数顺序)
(7)构造方法:在new创建对象时会调用的一个方法。构造方法会默认给属性赋初始值
注意:如果定义了一个带参的构造方法,那么无参的构造方法就失效了;但是编码规范要求一旦定义了一个带参的构造方法,就要写无参的构造方法
(构造方法和main方法都可以重载,但只有public static void main (String[] args) { } 是程序的主入口)
(8)垃圾回收机制:机器自动回收堆中没有栈引用的对象
2、继承:基类和派生类
3、多态(一个对外接口,多个内在实现方法):
定义:同一操作作用于不同的类的对象,将产生不同的执行结果