3.24-3.26学习总结

目录

一.方法methed

 二.构造方法(构造器)

 三.方法重载

 四.方法覆写


一.方法methed

        1.定义:

        修饰符  方法返回类型  方法名(参数列表){

                系列语句;

                return 返回值;

}

        2.public+方法/字段: 公开给外部,外部代码可以直接调用/访问。

        3.private+方法/字段: 不允许外部调用/访问,但可以使用内部方法间接调用/访问

#使用private  可以避免破坏封装性,避免逻辑混乱。如,一个人的年龄不能为负数。

4.this变量 指向当前实例

        当有局部变量与字段冲突时,须加上this

二.构造方法(构造器)

        创建对象时,通过构造方法初始化该对象

  1. 名称为类名,无返回值。#返回值为该类的实例(隐式,不要写return)
  2. 任何class都有构造方法,须用new调用。#没有定义构造器时,会生成一个默认的无参构造器,将成员变量初始化为0/null/false
  3. 类中可以存在多个构造方法,但每个构造方法的参数列表一定不同(重载)。
public class Main {
    public static void main(String[] args) {
        Constructor con1=new Constructor(6,"666");
        con1.Print();//6 666
        Constructor con2=new Constructor();
        con2.Print();//0 null
    }
}
class Constructor{
    int x;
    String str;
    public Constructor(){
        //默认
    }
    public Constructor(int x,String str) {
        this.x = x;//变量冲突,用this
        this.str = str;
    }
    public void Print(){
        System.out.println(x+"\n"+str);
    }
}

 三.方法重载

        同一个类,方法同名,参数列表一定不同。

#可将一系列功能类似的方法,设置成同名,方便记忆

#参数列表不同:1.形参个数不同。2.形参类型不同

#重载形参个数可变的方法时,优先调用形参固定的方法。如需调用可变方法,可传入数组形式。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        Overload temp=new Overload();
        temp.test(1,1);//固定参数
        temp.test(new int[]{1,1});//可变参数
    }
}
class Overload{
    public void test(int...nums)
    {
        System.out.println("可变参数");
    }
    public void test(int x,int y)
    {
        System.out.println("固定参数");
    }
}

四.方法覆写

        在继承关系中,子类中定义了一个与父类方法签名(方法名+参数列表)相同的方法。

  1. 子类方法返回值应比父类更小或相等
  2. 子类方法声明抛出的异常类应比父类更小或相等(挖个坑)
  3. @Override 检测覆写

#覆写发生在子类与父类之间

#子类可以重载父类的方法

public class Main {
    public static void main(String[] args) {
        Parent p=new Parent();
        p.method(666);//父类方法
        Child c=new Child();
        c.method(888);//override
        c.method("000");//overload
    }
}
class Parent{
    public void method(int n){
        System.out.println(n+"父类方法");
    }
}
class Child extends Parent{
    //覆写
    @Override
    public void method(int x){
        System.out.println(x+"\n"+"override");
    }
    //重载
    public void method(String str){
        System.out.println(str+"\n"+"overload");
    }
}

你可能感兴趣的:(java学习,学习)