this类变量

1.this;

2.类变量、类方法

3.四大特征

this属于一个具体的对象,而不是属于一个类,创建一个对象的时候,this自动就带过来了,就像上帝创造一个人的时候,自然把我这个词赋予这个人。

例子:

public class Person {

int age;

String name;

Dog dog;//引用类型,

public Person(int gae,String name,Dog dog){

this.age=age;

this.name=name;

this.dog=dog;

}

public void show(){

System.out.println("名字是:"+this.name);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Dog dog1=new Dog(3,"旺财");

Person p1=new Person(23,"小王",dog1);

p1.show();

p1.dog.ShowDog();//调用狗这个类里面的函数

}

}

class Dog{

int age;

String name;

public Dog(int age,String name){

this.age=age;

this.name=name;

}

public void ShowDog(){

System.out.println("狗名叫:"+this.name);//显示狗的名字

}

}

输出结果:

内存如图:

注意this不能再类定义的外部使用,只能在类定义的方法中使用。

 

静态变量(类变量):

例题:有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在有多少人在玩?

解析:在设计一个int total表示总人数,在创建啊一个小孩类时,把total加一,并且total所有对象共享,如图:

 

程序如下:

public class Person {

int age;

String name;

public Person(int gae,String name){

this.age=age;

this.name=name;

}

public void show(){

System.out.println("名字是:"+this.name);

}

public static void main(String[] args) {

Person p1=new Person(23,"小王");

p1.show();

Child ch1=new Child(3,"妞妞");

ch1.JoinGame();

Child ch2=new Child(4,"李丽");

ch2.JoinGame();

Child ch3=new Child(4,"连连");

ch3.JoinGame();

System.out.println("总共有"+ch3.total+"个人参加游戏");

}

}

//定义小孩类

class Child{

int age;

String name;

static int total=0;//静态变量,因此它可以被任何一个对象访问

public Child(int age,String name){//child的构造方法

this.age=age;

this.name=name;

}

public void JoinGame(){

total++;

System.out.println("有一个小孩加入游戏。");

}

}

输出结果:

### Java 中变量的概念 在 Java 编程语言中,变量是指被 `static` 关键字修饰的成员变量。这变量属于整个而不是某个特定的对象实例。因此,在所有对象之间共享相同的变量副本[^1]。 当声明一个静态字段时,无论创建多少个该的不同实例,只会存在一份这样的静态字段。这使得变量非常适合用于存储适用于所有对象的数据或者配置参数。 #### 定义方式 为了定义一个变量,可以在其前面加上关键字 `static`: ```java public class MyClass { public static int myStaticVariable; } ``` 上述代码片段展示了一个简单的例子,其中 `myStaticVariable` 是一个整型型的变量[^2]。 #### 使用场景 - **全局计数器**:如果希望跟踪某已创建了多少个实例,则可以使用变量来保存此数量。 - **常量定义**:通常会将不会改变的数值作为公共静态最终(`public static final`)属性表示,即所谓的编译时常量。 - **资源共享**:对于多个对象间需要共同使用的资源或状态信息,可以通过变量来进行管理。 #### 示例说明 下面是一个具体的案例,它展示了如何利用变量记录学生总数以及每位学生的姓名: ```java class Student { private static int studentCount = 0; // 变量, 记录总人数 private String name; public Student(String name) { this.name = name; ++studentCount; // 每新建一个Student对象就增加一次计数 } public static int getTotalStudents(){ return studentCount; // 返回当前的学生数目 } } // 测试程序 public class TestClassVariables { public static void main(String[] args){ System.out.println("初始情况下有 "+ Student.getTotalStudents()+" 名学生"); new Student("Alice"); new Student("Bob"); System.out.println("现在共有 "+ Student.getTotalStudents()+ " 名学生"); } } ``` 这段测试代码先打印出初始化状态下没有学生的信息;接着分别创建两个名为 Alice 和 Bob 的新学生,并再次调用 `getTotalStudents()` 方法显示更新后的学生总数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值