Java类和对象(二)

一、方法之间的调用:

        在一个方法里面可以使用另一个方法这个叫做方法的调用 

public class Test {
    public void one1(){
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        this.one3();
    }
    public void one2(){
        this.one3();
        System.out.println(7);
        System.out.println(8);
        System.out.println(9);
    }
    public void one3(){
        System.out.println(4);
        System.out.println(5);
        System.out.println(6);
    }
    public static void main(String[] args) {
        Test t = new Test();
        t.one1();
    }
}

注意:1.当一个类中调用自己类的方法时可以用this.方法名(参数列表)

           2.当一个方法中调用自己的时候有可能会出现StackOverflowError(栈内存溢出错误)

 二、方法的重载:

在一个类中多个方法名相同,但参数列表不同,这样就构成了方法的重载

参数列表不同又分为下面几种:

(1).类型不同

(2).个数不同

(3).顺序不同

public class Test {
    public void one1(){
        System.out.println("没有值传进来");
    }
    public void one1(int x){
        System.out.println("传进来"+x+"的值");
    }
    public static void main(String[] args) {
        Test t = new Test();
        t.one1();
        t.one1(5)
    }
}

为啥要使用方法的重载呢?

        让我们在定义方法的时候可以将多个共同作用的方法的名称统一化管理,方便使用和记忆

三、构造方法:

作用:(1).是用来创建对象的

           (2).可以在创建对象的时候给属性赋值

public Person(int age,String name){
    this.age = age;
    this.name = name;
}
public static void main(String[] args) {
    //创建对象 给属性赋值
    Person p = new Person(10,"张三");
}

写法:(1).不写返回值

           (2).方法名与类名同名(区分大小写)

           (3).可以不写,系统会默认提供一个空参的构造方法,如果自己声明了一个构造方法,则会  覆盖系统默认提供的构造方法,如果还需要使用无参构造方法则需要重新再写一个(方法的重载)

构造方法的重载:为了让赋值的选择更加的灵活多变

注意:如果参数列表里的参数名跟属性名重名可以使用this.属性名来指代属性

public class Person {    
    public String name;
    public int age;
    //构造方法给属性赋值
    public Person(int age,String name){
        this.age = age;
        this.name = name;
    }
    //构造方法的重载
    public Person(String name){
        this.name = name;
    }
    public Person(){
        System.out.println("空参的");
    }

    public void test(){
        System.out.println("此人是:"+this.name+"--年龄是:"+this.age);
    }

    public static void main(String[] args) {
        //创建对象
        Person p = new Person(10,"张三");
        p.test();
        Person p1 = new Person("李四");
        p1.test();

    }
}

构造方法之间的调用:

public class A {
    public String name;
    public int age;
    public String a;
    public String b;
    public String c;

    public A(int age,String name,String a,String b,String c){
        this.age = age;
        this.name = name;
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public A(int age,String name){
        this(age,name,"a","b","c");
    }

    public A(int age){
        this(age,"张三");
    }
    public A(String name){
        this(30,name);
    }
    public A(){
        this(30,"张三","a","b","c");
    }

    public static void main(String[] args) {
        A a = new A(40);//构造方法之间的互相调用不会产生更多的对象
        System.out.println(a.name+"-"+a.age);
    }
}

注意:构造方法之间的互相调用不能出现闭环

本人会定期发表关于Java的相关知识,如果有错误请指出,觉得好请点赞,收藏加关注,谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值