ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

this什么时候不能省略

2022-05-09 10:33:28  阅读:148  来源: 互联网

标签:省略 name no int Student1 不能 时候 public String


/*
1、this可以使用在实例方法中,不能使用在静态方法中。
2、this关键字大部分情况下可以省略,什么时候不能省略呢?
在实例方法中,或者构造方法中,为了区分局部变量和实例变量,这种情况下:this. 是不能省略的。
*/


public class ThisTest03 {
public static void main(String[] args) {
Student1 s=new Student1();
s.setNo(111);
s.setName("张三");

System.out.println("学号:"+s.getNo());
System.out.println("姓名:"+s.getName());

Student1 s2=new Student1(2222,"李四");
System.out.println("学号:"+s2.getNo());
System.out.println("姓名:"+s2.getName());

}
}

//分析一下:以下代码哪里写的不好。
//方法中形式参数名没意义
//学生类
class Student1{
//学号
private int no;
//姓名
private String name;
//构造方法无参
public Student1(){

}
//构造方法有参
/*
public Student1(int i,String s){
no=i;
name=s;
}
*/
//上面的构造方法也增强一下可读性
public Student1(int no,String name){
this.no=no;
this.name=name;
}

//setter and getter方法
/*
public void setNo(int i){
no=i;
}
*/
/*
public void setNo(int no){ //就近原则。
no=no; //这两个no都是局部变量no,和实例变量no没关系。
}
*/
public void setNo(int no){ //就近原则。
//no是局部变量
//this.no是指的实例变量。
this.no=no; //this. 的作用是:区分局部变量和实例变量。
}
public int getNo(){
return no;
}
/* public void setName(String s){
name=s;
}*/
/*
public void setName(String name){
name=name;//这两个name都是局部变量name,和实例变量name没有关系。
}
*/
public void setName(String name){
this.name=name;
}

//return name;==return this.name;
public String getName(){//getName实际上获取的是“当前对象”的名字。
return name;//严格来说,这里是有一个this. 的。只不过这个this. 是可以省略的。
}
}

标签:省略,name,no,int,Student1,不能,时候,public,String
来源: https://www.cnblogs.com/yyn1999/p/16248194.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有