1.this关键字
1.一般写在 实体类中。表示的是当前的对象
可以使用 this调用 属性和方法
2.this关键字可以调用构造方法(很少用)
注意事项:
1.一定是在构造方法调用另外一个构造方法
2.在构造方法中调用其他的构造方法的时候,构造调用时候一定写在首行
class Person {
String name;
int age;
public Person () {
System.out.println("Line 9: "+ this);//代表是当前的对象
this.name = "狗蛋";//this可以调用属性
}
public void eat () {
//this可以调用方法
this.test();
}
public void test () {
System.out.println("嘻嘻");
}
}
public class Demo1 {
public static void main(String[] args) {
Person person1 = new Person();
System.out.println(person1);//对象的内存地址 15db9742
System.out.println(person1.name);
person1.eat();
Person person2 = new Person();
System.out.println(person2);//对象的内存地址6d06d69c
System.out.println(person2.name);
}
}
class Dog {
String name;
int age;
public Dog () {
//在无参构造方法中调用有参构造方法
//System.out.println("xixi");
//Constructor call must be the first statement in a constructor
this("旺财", 5);
System.out.println("xixi");
}
public Dog (String name) {
this();//调用无参的构造方法
this.name = name;
}
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
}
//一个参数的构造方法 去调用 无参构造方法 在无参构造方法调用了有两个参数的构造方法
public class Demo2 {
public static void main(String[] args) {
Dog dog = new Dog("二狗");
System.out.println(dog.name);//二狗
System.out.println(dog.age);// 5
//Dog dog = new Dog();
// dog.name = "大黄";
// dog.age = 4;
// Dog dog1 = new Dog("大黄", 6);
// System.out.println(dog1.name);
// System.out.println(dog1.age);
}
}
2.方法的参数是一个类对象
方法的参数可以是八大基本数据类型 , String , 数组
类对象也是作为方法的参数
class Teacher {
public void teach (Student1 stu) {
stu.coding();
}
}
class Student1 {
public void coding () {
System.out.println("敲代码");
}
}
public class Demo5 {
public static void main(String[] args) {
Teacher teacher = new Teacher();
Student1 student1 =new Student1();
teacher.teach(student1);
}
}