2021-04-03

在这里插入图片描述
构造方法在类体中要后于成员变量的出现,因为类在产生的时候首先要声明类中的那几个成员变量,然后执行构造方法。

在这里插入图片描述
还可以在声明new对象的时候,给个参数,给到构造方法中。

在这里插入图片描述这个时候就会报错,因为main中使用了有参构造犯法,而类中虽然有有参构造方法,但是此时默认的无参构造方法已经被削,所以main中再调用无参构造方法时就会报错。此时可以再在类中手动加上无参构造方法。

方法名字相同,但是参数列表不同的方法之间构成重载,overload。

在这里插入图片描述
由于方法的返回值在main中可以不接,所以返回值不同并不属于重载。

在这里插入图片描述
在这里插入图片描述能否分得清是区别是不是重载的最根本原则。
在这里插入图片描述
代表当前 正在 调用 的对象 的理解:谁调用这个方法,就代表谁。

在这里插入图片描述
是当前类的引用变量,所以可以引用/代表/记录一个对象。 所以不管在构造方法还是成员方法中都代表main中正在引用或者构造的对象/当前对象自己。

在main中引用变量要加.,但是在类的内部不需要,就是因为this省略了。

由于this的存在,形参和成员变量名尽量保持不一致。

在这里插入图片描述
等号左边的是成员变量name和age,但是遵循就近原则,所以此时等号左边的name和age就是它上面小括号里面的刚定义的name 和age,因此这句话相当于自己给自己赋值,没有任何变化,所示age是0,name是null。
解决方法:
在这里插入图片描述
加上this之后代表: 左边的name和age都是当前对象的name和age,而不是局部变量。

在这里插入图片描述
虽然形参和成员变量相同时会混淆,但是为了读代码方便,还是尽量一致,因此这个时候(一样的时候)每当使用成员变量时都要在前面加上一个this.,代表使用的是成员变量。
this就是为了避免歧义而使用的。
在这里插入图片描述
在这里插入图片描述
package Lianxi;

public class Student {
//1.私有化成员变量,使用priviate关键字修饰
private int id;
private String name;//私有化,只能在类的内部使用
//2.提供共有的get set方法,并在方法体中进行方法体的合理值判断
//使用public修饰,也就是该方法可以在任何位置使用
public Student(){}
public Student(int id, String name){
//this.id=id;
// this.name=name;
//在共有的构造方法中调用set方法进行合理值判断
this.setId(id);
this.setName(name);
}
public int getId(){
return id;
}
public void setId(int id){
if(id > 0) {
this.id = id;
}else {
System.out.println(“学号不合理”);
}

}
public String getName(){
    return name;
}
public void setName(String name){
    this.name = name ;
}
public void show(){
    System.out.println("我是"+name+"  "+"学号是"+id);

}

}

package Lianxi;

public class StudentTest {
public static void main(String[] args){
Student s1 = new Student();
s1.setId(-1001);
s1.setName(“zhang”);
s1.show();
System.out.println(“我是”+s1.getId()+",学号是"+s1.getName());
System.out.println("---------");
Student s2=new Student(-10,“zhangfei”);
s2.show();

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值