2、《JAVA核心卷I》笔记-面向对象
第4章 对象与类
1、预定义类
类之间的关系:聚合,依赖,继承
date等。
对象是类的实例
对象的克隆
Date d=new Date();
Date dd=d.clone();
dd=d;//对象在堆上,指向同一个对象
2、自定义类
class Employee { //初始化以后不可改变 finale private final String mName; //所有类共享statci变量 private statci int mNextID = 2; //静态常量 private static final int PI = 3; //静态方法 Employeer.get() public staic get() { } private int mAge; public Employee(String name, int age) { this.mName = name; mAge = age; } public String getName() { return mName; } }
方法参数:
C++有按值传递和按照引用传递,java没有
方法不能改变基本类型数据;
方法可以改变一个对象的参数状态。
方法不能让对象参数引用另外一个对象,以下无法交换,a是原来的一份引用的拷贝。
void swap(Employee a,Employeeb ){
Employee temp=a;
a=b;
b=temp;
}
重载:
多个构造器调用另外一个构造器
this(XXX)
初始化块:创建对象的时候调用
对象析构:finalize,不建议使用
包:类似于命名空间
package com.test;
导入静态方法
import static java.s
3、文档注释
IDEAL生成注释:打/**回车会自动生成
第5章 继承
1、超类和子类
class Manager extends Employee { public Manager(String name, int age) { super(name,age); } }
super可以调用父类方法或者构造器。
多态,动态判断对象的类型。
final定义类和方法,阻止继承和覆写。
类型转换:
继承层次内转换,超类转子类使用instanceof检查。
抽象类:类似于虚函数
abstract class Person { public abstract int getTemp(); }
修饰符:
priate:本类可见
public:所有类可见
protect:本包和子类可见
默认:本包可见
根类:Object
2、泛型数组
ArrayList<Employee> list=new ArrayList<>(100); list.get(0);
包装器与装箱:每个基本类型对应一个类。
可变参数:
void tmp(double...tmp);