对象的产生和使用
1、创建对象的根本途径就是构造器,所以创建对象通过关键字new 加上对应的构造器即可.
2、如果访问权限允许,类里定义的属性和方法可以通过类或实例来调用,
3、有static 修饰的访求和属性,既可通过类来调用,也可以通过实例来调用.
对象.引用和指针
1、Person p = new Person();,这行代码创建了一个Person 实例,也被称为对象,这个对象被赋给了p变量.
2、也就是说引用型变量里存放的仅仅是一个引用,它指向实际的对象.
对象的this 引用
this 关键字总是指向调用该方法的对象:
1.构造器中引用该构造器执行初始化的对象
2.在方法中引用调用该方法的对象
在方法里的this 指谁调用就指谁
注: this 不能用在有static 修饰的方法中.
===========================================================
public class Dog22 { public void jump() { System.out.println("正在执行jump方法"); } public void run() { this.jump(); System.out.println("正在执行run方法"); } }
public class DogTest22 { public static void main(String[] args) { Dog22 dog = new Dog22(); dog.run(); } }
this 关键字总是指向调用该方法的对象
在方法里的this 指谁调用就指谁
=============================================================
=================================================================
public class ThisInConstructor { public int foo; public ThisInConstructor() { int foo = 0; this.foo = 6; } public static void main(String[] args) { System.out.println(new ThisInConstructor().foo); } }
public class Employee { String name; int age; String designation; double salary; public Employee(String name) { this.name = name; } public void empAge(int empAge) { age = empAge; } public void empDesignation(String empDesig) { designation = empDesig; } public void empSalary(double empSalary) { salary = empSalary; } public void printEmployee() { System.out.println("名字:"+ name ); System.out.println("年龄:" + age ); System.out.println("职位:" + designation ); System.out.println("薪水:" + salary); } public static void main(String[] args) { Employee empOne = new Employee("RUNOOB1"); Employee empTwo = new Employee("RUNOOB2"); empOne.empAge(26); empOne.empDesignation("gao_ji"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21); empTwo.empDesignation("di_ji"); empTwo.empSalary(500); empTwo.printEmployee(); } }
名字:RUNOOB1
年龄:26
职位:gao_ji
薪水:1000.0
名字:RUNOOB2
年龄:21
职位:di_ji
薪水:500.0
public class Employee { String name; int age; String designation; double salary; public Employee(String name,int age) { this.name = name; this.age = age; } public void empDesignation(String empDesig) { designation = empDesig; } public void empSalary(double empSalary) { salary = empSalary; } public void printEmployee() { System.out.println("名字:"+ name ); System.out.println("年龄:" + age ); System.out.println("职位:" + designation ); System.out.println("薪水:" + salary); } public static void main(String[] args) { Employee empOne = new Employee("RUNOOB1",25); Employee empTwo = new Employee("RUNOOB2",22); empOne.empDesignation("gao_ji"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empDesignation("di_ji"); empTwo.empSalary(500); empTwo.printEmployee(); } }
名字:RUNOOB1
年龄:25
职位:gao_ji
薪水:1000.0
名字:RUNOOB2
年龄:22
职位:di_ji
薪水:500.0
===========================================
与普通方法类似的是,大部分时候,在构造器中访问其他成员变量和方法时,都可以省略this前缀;
但是,如果构造器中有一个与成员变量同名的局部变量,又必须在构造器中,访问这个被覆盖的成员变量,则必须使用this前缀;