Java-方法总结

方法

一、方法的分类

  • 构造方法

  • 实例方法

  • 类方法

构造方法

给出类所创建的对象的初始状态,(给对象的属性赋值) 在创建对象之后自动调用 构造方法的格式:方法名与类名相同,没有返回值

class person {
    public person(){}    // 默认无参构造方法
    public person(参数列表){}    // 定义构造方法
    …
    // 类主体
}
//方法名必须与类名相同
可以有 0 个、1 个或多个参数
没有任何返回值,包括 void
默认返回类型就是对象类型本身
只能与 new 运算符结合使用
  • 构造方法的作用:初始化类的对象,并返回对象的地址。 有参构造器在初始化对象时,已经为其赋值了, 无参构造器在初始化对象时,成员变量的数据均采取默认值

  • 任何类定义出来,默认就带了无参构造方法,写不写都有 一旦定义了有参构造器,无参构造器就没有了,如果还需要无参构造器,就需要哦自己手动写一个无参构造器

示例:创建一个car类

public class car构造方法 {
    String name;
    double price;
//无参构造器
    public car构造方法(){
        System.out.println("无参构造器被触发执行");
    }
    //有参构造器
    public car构造方法(String n, double p){
        System.out.println("有参构造器被触发且执行");
name=n;
price=p;
    }
}

创建main方法来调用

public class cartest构造方法 {
    public static void main(String[] args) {
        car构造方法 c=new c0car构造方法();
        System.out.println(c.name);
        System.out.println(c.price);
​
        car构造方法 c2=new c0car构造方法("baoma",88);
        System.out.println(c2.name);
        System.out.println(c2.price);
    }
}

类方法

被static关键字修饰的方法,类方法也称为静态方法

  • 静态方法不需要通过它所属的类的任何实例就可被调用

  • 在静态方法中不能使用this和super关键字

  • 不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。

实例方法

除构造方法外,没有被static修饰的方法

  • 在实例方法中可以直接访问所属类的静态变量、静态方法、实例变量和实例方法。

public class StaticMethod {
    public static int count = 1;    // 定义静态变量count
    public int method1() {    
        // 实例方法method1
        count++;    // 访问静态变量count并赋值
        System.out.println("在静态方法 method1()中的 count="+count);    // 打印count
        return count;
    }
    public static int method2() {    
        // 静态方法method2
        count += count;    // 访问静态变量count并赋值
        System.out.println("在静态方法 method2()中的 count="+count);    // 打印count
        return count;
    }
    public static void PrintCount() {    
        // 静态方法PrintCount
        count += 2;
        System.out.println("在静态方法 PrintCount()中的 count="+count);    // 打印count
    }
    public static void main(String[] args) {
        StaticMethod sft = new StaticMethod();
        // 通过实例对象调用实例方法
        System.out.println("method1() 方法返回值 intro1="+sft.method1());
        // 直接调用静态方法
        System.out.println("method2() 方法返回值 intro1="+method2());
        // 通过类名调用静态方法,打印 count
        StaticMethod.PrintCount();
    }
}

二、方法重载

在同一个类中,方法名称相同而形参列表不同。形参列表不同是指形参列表的个数或顺序或类型不同,而参数名不同不能认为是方法重载

三、方法重写

  • 当父类中的方法无法满足子类需求时需要方法重写

  • 方法重写又称为方法覆盖,在子类中创建一个与父类中的方法名称相同,返回值类型相同,形参列表相同,而方法体中的内容不同的方法即称为方法重写 方法重写时要注意的点

  • 访问权限不能比父类的方法访问权限低

  • 声明为static和final的不能悲惨重写

  • 构造方法不能被重写

  • 子类和父类在同一个包中时,子类可以重写父类的所有方法,除了声明为 private 和 final 的方法。

  • 子类和父类不在同一个包中时,子类只能重写父类的声明为 public 和 protected 的非 final 方法。

  • 如果不能继承一个方法,则不能重写这个方法。

方法的调用

  • 没有使用 static 修饰的成员变量和方法都必须使用对象来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值