java面向对象学习笔记

1.类和对象:类可以看成是一类对象的模板,对象可以看成是该类的一个具体实例.

2.类(对象)之间的关系:聚合,继承,实现,多态.

3.内存区分:  类是静态概念,代码区;  对象是new出来的,位于堆内存

4.构造方法(函数):(1)与类同名且没有返回值

                            (2)用来初始化对象的函数

                             (3)new+构造方法,创建一个新的对象

5.命名规则:类名的首字母大写,变量名和方法首字母小写,运用驼峰标识

6.栈内存存入一个引用指向堆内存

7.方法重载(OverLoad):相同名字,相同返回类型,当参数不同(个数不同或类型不同),的多个方法

8.static:用static声明的成员变量称为静态的成员变量,公用变量,对于该类的所有对象来说static成员变量只有一份

             用static声明的方法称为静态方法,在调用该方法时不会将对象的引用传递给他,所以static方法中不能访问非 

                  static的成员

            可以通过对象引用或类名(不需要实例化)访问静态成员

9.访问控制:

10.方法重写(OverRide):在子类中可以根据需要对父类中继承来的方法进行重写

11.equals:Object的equals方法定义为:x.equals(y)当x和y是同一对象的引用时返回true否则返回false(等价于==)

                String,Date等类重写了Object中的equals()方法,x.equals(y)当x和y所引用的是同一类对象且属性内容相等时返回true.

12.多态:(1)要有继承

               (2)要有重写

               (3)父类引用指向子类对象

class Animal {
    private String name;
    Animal(String name){this.name = name;}
    public void enjoy(){
        System.out.println("叫声......");
    }
}

class Dog extends Animal{
    private String color;
    Dog(String n,String c){
        super(n);
        color = c;
    }
    public void enjoy(){
        System.out.println("狗叫声......");
    }
}

class Cat extends Animal{
    private String eyesColor;
    Cat(String n,String c){
        super(n);
        eyesColor = c;
    }
    public void enjoy(){
        System.out.println("猫叫声......");
    }
}

class Lady {
    private String name;
    private Animal pet;
    Lady(String name,Animal pet){
        this.name = name; this.pet = pet;
    }
    public void myPetEnjoy(){
        pet.enjoy();
    }
}

public class Poolymoph{
    public static void main(String[] args) {
        Cat c = new Cat("catname","blue");
        Dog d = new Dog("dogname","black");
        Lady l1 = new Lady("l1",c);
        Lady l2 = new Lady("l2",d);
        l1.myPetEnjoy();
        l2.myPetEnjoy();

    }
}
输出为:
猫叫声......
            狗叫声......

总结:建一个Animal父类,写其enjoy方法,在把Cat、Dog等类作为子类继承Animal类,并重写其enjoy方法;最后把Cat、Pig这些类全部扔进篮子里,调用其enjoy方法,就会自动地去调用Cat、Pig对应的enjoy方法。

13.抽象:抽象类必须被继承,抽象方法必须重写,含有抽象方法的类必须被声明为抽象类

             抽象类不能被实例化

             抽象方法只需声明,而不需实现

14.final:final的变量的值不能被改变,final的方法不能被重写,final的类不能被继承

15.接口:接口是抽象方法和常量之的定义和集合

               从本质上讲,接口是一种特殊的抽象类,这种抽象类中之包含常量和方法的定义,而没有常量和方法的实现

   接口特征:1、接口可以多重实现

                     2、接口中声明的属性默认为public static final的,也只能是public static final的

                     3、接口中只能定义抽象的方法,而且这些方法默认为public,也只能是public的

                     4、接口可以继承其他接口,并添加新的属性和抽象方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值