学习资源: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"); } }
注意事项与使用细节