首页 > 基础资料 博客日记
20220722-Java中this关键字
2023-07-29 17:22:57基础资料围观278次
文章20220722-Java中this关键字分享给大家,欢迎收藏Java资料网,专注分享技术知识
this关键字知识总结
学习资源:B站韩顺平老师Java入门教学
代码示例1
public class This01 {
public static void main(String[] args) {
Dog d1 = new Dog("小黄", 3);
d1.info();
System.out.println("对象d1的hashcode=:" + d1.hashCode());
System.out.println("---------------");
Dog d2 = new Dog("小花", 2);
d2.info();
System.out.println("对象d2的hashcode=:" + d2.hashCode());
}
}
class Dog {
int age;
String name;
// 根据变量的作用域原则,方法中的name与age实际指的是局部变量而不是成员变量
// public Dog(String name, int age) {
// name = name;
// age = age;
// }
// java虚拟机会给每个对象分配this,代表当前对象
public Dog(String name, int age) {
this.name = name;
this.age = age;
System.out.println("构造器中:this.hashcode=:" + this.hashCode());
}
public void info() {
System.out.println("狗狗名字叫:" + this.name + "\n年龄:" + this.age);
System.out.println("成员方法中:this.hashcode=:" + this.hashCode());
}
}
代码示例2
public class ThisDetail {
public static void main(String[] args) {
T t1 = new T();
t1.f2();
System.out.println("---------------");
T t2 = new T(10);
System.out.println("---------------");
T t3 = new T("小明", 10);
System.out.println(t1.name + "==" + t1.age);
System.out.println(t2.name + "==" + t2.age);
System.out.println(t3.name + "==" + t3.age);
}
}
class T {
int age;
String name;
// 细节1:访问成员方法的语法:this.方法名(参数列表);
public void f1() {
System.out.println("f1()方法..");
}
public void f2() {
System.out.println("f2()方法..");
// 在f2()中调用f1()
// 第一种方法
f1();
// 第二种方法
this.f1();
}
// 细节2:调用构造器语法:this(参数列表); 只能在构造器中使用,只能放在构造器的首句
T() {
this.name = "小李";
this.age = 18;
System.out.println("调用构造器1");
}
T(int age) {
this();
this.age = age;
System.out.println("调用构造器2");
}
T(String name, int age) {
this(age);
this.name = name;
System.out.println("调用构造器3");
}
}
注意事项与使用细节
- this关键字可以用来访问本类的属性、方法、构造器;
- this用于区分当前类的属性和局部变量;
- 访问成员方法的语法:this.方法名(参数列表);
- 访问构造器语法:this(参数列表); 注意:只能在构造器中使用,且需要为构造器中的首行;
- this不能在类定义的外部使用,只能在类定义的方法中使用
文章来源:https://www.cnblogs.com/zhanghuaze/p/16506098.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: