JAVA DAY(1

构造函数的理解(引用来源JAVA构造函数(方法)_打杂人的博客-CSDN博客_java 构造函数

Java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。

作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。

          一句话被点醒:在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。

构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句。

而一般函数是对象调用才执行,用 ".方法名" 的方式,给对象添加功能。

一个对象建立,构造函数只运行一次。

而一般函数可以被该对象调用多次。

事例:

       1)当构造函数中需要传值给private变量时,不需要setter功能

package javastudy;
 
public class ConfunDemo3 {
    public static void main(String[] args){
        //实例化对象时,new Person()里直接调用Person构造函数并转转实参,相当于setter功能
        Person z = new Person("aerchi",18);
        z.show();
    }
}
 
class Person{
    private String name;
    private int age;
    //有参数构造函数,实现给private成员变量传参数值的功能
    public Person(String n,int m){
        name=n;
        age=m;        
    }
    //getter                                      
    //实例化对象时,完成了sett功能后,需要getter,获取实参值。
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
 
    //获取private值后,并打印输出
    public void show(){
        System.out.println(name+"\n"+age);
    }
}

      又涉及到一个自己不熟悉的知识点private(私有,封装)详细参考一下Java中get()方法和set()方法_zyuyuyuy的博客-CSDN博客_java中的get和set方法

目前自己做到的题还没有涉及到这个知识点,再接再厉。

2)PTA上简单一道题(自己理解还是不到位,加油加油吧)

public class Main {
    public Main(){
        System.out.println("构造方法一被调用了");
    }
    public Main(int x){
        this();        //调用Main()
        System.out.println("构造方法二被调用了");
    }
    public Main(boolean b){
        this(1);    //调用Main(int x)
        System.out.println("构造方法三被调用了");
    }
    public static void main(String[] args) {
        Main a = new Main(true);
    }
}

不懂上面的this为什么可以调用调用Main(int x),然后又去查找资料(找到一篇文章,自己总结如下,应该还有些疏漏,希望以后能够慢慢补全)

(1)this不可以在普通方法中,因为是构造方法(至少有一个)执行完后才进行this的调用所以当它存在与普通方法中时就会出现错误

(2)使用this可以实现构造方法的互相调用,但是

          一、this()调用构造方法的语句必须放在构造方法的首行。 

          二、使用this调用构造方法的时候请留有出口;

(3)调用方式:

         普通方法:this.方法名称(参数...)

         构造方法:this(参数...)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值