JAVA学习笔记-03

1.重载overload

同一个类中定义了名字相同,参数不同的方法。调用根据参数个数,顺序,类型调用。
构造方法也能overload

public class MyMath{
    public int add(int a,int b){
        return a+b;
    }
    public int add(int a,int b,int c){
        return a+b+c;
    }
}
public class TestOverload{
    public static void main(String[] args){
        MyMath m=new MyMath();
        System.out.println(m.add(1,2));//3
        System.out.println(m.add(1,2,3));//6
    }
}

2.this隐式参数

  • 方法:静态方法和普通方法

  • this用在普通方法中,代表当前对象,用来给对象中的属性赋值

this( );位于构造方法中第一句,其他构造方法

3.三大特征

3.1继承

  • 继承-提高代码的复用性,类只有单继承,接口有多继承。
  • 根类java.lang.Object,所有类的祖宗
  • Object类,没声明父类的,自动继承这个类
  • 方法的重写- override
public class Main {
    public static void main(String[] args){
        Object o = new Object();
        System.out.println(o.toString());
    }
}
java.lang.Object@de0a01f
  • super关键字-直接父类对象的引用
  • this关键字-当前对象的引用
main:
    Bird b=new Bird();//
Bird():{
    super();//Animal
}
Animal(){
    super();//Object
}
Object(){
    //
}
  • is-a 用继承,extends,然后super调用父类对象中方法,属性
  • has-a 用组合
Bird(){
    Animal an =new Animal();//通过new一个对象,组合其他类的方法。平级关系
    an.run();
}
  • final关键字
    修饰变量为常量:final int HEIGHT=170;
    修饰方法:方法不能重写override
    修饰类:类不能被继承extends

3.2封装-encapsulation

  • 高内聚,低耦合:类内部数据操作细节自己完成,暴露更少的方法给外部(苹果手机)
    private:当前类
    default:当前类,同一个包
    protected:当前类,同一个包,子类
    public:当前类,同一个包,子类,所有类
public class Man{
    private String name;//私有
    private int age;//
    public static int CC;//静态变量一般公有
    private boolean strong;//isStrong

    public String getName(){
        return name;
    }//用public方法获取私有属性
    public void setName(String name){
        this.name=name;
    }
    public boolean isStrong(){//特殊
        return strong;
    }
    public void setStrong(boolean strong){
        this.strong=strong;
    }
}

3.3多态-polymorphism

public class Animal{
    public void voice(){
        System.out.println("普通叫声");
    }
}
public class Cat extends Animal{
    public void voice(){
        System.out.println("喵喵");
    }
}
public class Dog extends Animal{
    public void voice(){
        System.out.println("汪汪");
    }
}
public class Test{
    public static void main(String[] args){
        Animal m1=new Cat();
        m1.voice();//喵喵
        Animal m2=new Dog();
        m2.voice();//汪汪
    }
}
  • instanceof 用于判断对象是不是一个类的实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值