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);

3、反射

1、意义

运行中分析类的能力

try {
    Class cl = Class.forName("Employee");
    for(Filed f:cl.getDeclaredFields()){
        System.out.println("type="+f.getType()+"name="+f.getName());
    }
}catch(Exception e){
    e.printStackTrace();
}

第6章 接口与内部类

1、接口

接口只能包含方法声明以及常量。

接口与抽象类:

!JAVA不支持多重继承,C++支持。

abstract class Comp{
    
}

class Employee extends  Comp{
    
}
//如下写法错误
class Employee extends Comp,Person
//应该是
class Employee extends Person implements Comp

2、对象克隆

①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。②对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该成员变量都指向同一个实例。在这种情况下,在一个对象中修改该成员变量会影响到另一个对象的该成员变量值。

3、内部类

定在在类内部,或者局部内部类定义在方法内部。

匿名内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值