对象的产生和使用
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前缀;