this java虚拟机会给每个对象分配this,代表当前对象。(this是属于对象的,不属于类 this不能在类定义的外部使用,只能在类定义的方法中使用)主要作用是区分不同对象的成员属性
public class Demo
{
public static void main(String []args)
{
Dog dog1 = new Dog(2,"大黄");
Person p1 = new Person(dog1,23,"赵本山");
Person p2 = new Person(dog1,24,"小沈阳");
p1.showInfo();//赵本山
p1.dog.showInfo();//大黄
Child ch1 = new Child(3, “妞妞”);
ch1.joinGame();
Child ch2 = new Child(4,"小小");
ch2.joinGame();</p><p>
System.out.println("共有=" + ch2.total);//为2
}
}
class Child
{
int age;
String name;
//total是静态变量,因此它可以被任何一个对象访问
static int total = 0;
public Child(int age, String name)
{
this.age = age;
this.age = name;
}
public void joinGame()
{
total++;
System.out.println("有一个小孩加入了");
}
}
class Person
{
// 成员变量
int age;
String name;
Dog dog;//引用类型
//构造方法
public Person(Dog dog, int age, String name)
{
this.age = age;
this.name = name;
this.dog = dog;
}
//成员方法
public void showInfo()
{
System.out.println("人名是:"+this.name);
}
}
class Dog
{
int age;
String name;
public Dog(int age,String name)
{
this.age = age;
this.name = name;
}
public void showInfo()
{
System.out.println("狗名是:"+this.name);
}
}
什么是类变量?
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量
如何定义类变量
访问修饰符 static 数据类型 变量名;
如何访问类变量?
类名.类变量名 或者 对象名.类变量名
class Stu
{
int age;
String name;
int fee;
static int totalFee;
public Stu(int age, String name, int fee)
{
this.age = age;
this.name = name;
totalFee += fee;
}
//回总学费 这是一个类方法(静态方法)
// java中规则:类变量原则上用类方法去访问
public static int getTotalFee()
{
//agg++; 错误 类方法中不能访问非类变量 但是反过来可以 普通方法中可以访问类变量
return totalFee;
}
}
什么事类方法?
类方法是属于所有对象实例的,公共的方法,其形式如下:
访问修饰符 static 数据返回类型 方法名(){}
注意:类方法中不能访问非静态变量(类变量)
使用:类名.类方法名 或者 对象名.类方法名