# 概念 变量: 成员变量(类中定义)和局部变量(方法中定义) 类的成员变量: 静态变量(类变量)和实例变量 static: 表示一个类的成员变量,即静态成员变量 final: 表示是一个常量
this关键字最大的作用就是让类中的一个方法访问该类中的另一个方法或实例成员变量
一、成员变量
1.语法
[<修饰符>] [static] [final] <变量类型 > <变量名>
2.实例
public class Hero {
// 英雄所在阵营如天灾方,近卫方,为类变量
static String camp;
// 英雄名字,实例变量
String name;
public static void main(String[] args){
// 创建实例
Hero hero1 = new Hero();
Hero hero2 = new Hero();
// 为类成员变量赋值
Hero.camp="近卫方";
// 为实例变量赋值
hero1.name="";
hero2.name="";
System.out.println("hero1英雄名"+hero1.name+"\t"+"所在阵营"+hero1.name);
System.out.println("hero2英雄名"+hero2.name+"\t"+"所在阵营"+hero2.name);
// hero2不愿与hero1同一个阵营,hero2对象擅自修改类变量值
hero2.camp="天灾方";
// hero2对象擅自修改类变量值
System.out.println("------hero2修改camp属性后------");
System.out.println("hero1英雄名"+hero1.name+"\t"+"所在阵营"+hero1.name);
System.out.println("hero2英雄名"+hero2.name+"\t"+"所在阵营"+hero2.name);
}
}
二、this关键字
1.注意
省略this前缀只是一种假象,虽然程序员省略了调用jump()方法之前的this,但实际此this依然存在
public void run(){
//其他代码省略
jump();
}
2.实例
//创建一个Dota游戏中的兵营类,该类中有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。
//表示的是兵营已经创建士兵的总数;name,表示的是每一个病人的名称,selfCount表示每一个兵营已经创建的士兵数量。
//创建3个兵营,通过控制台为每个兵营定义并一名称,并指定待兵营需要创建了士兵人数。
//在主方法中输出当前兵营中的总人数。
import java.util.Scanner;
public class Barracks {
int count;
String name;
int selfCount;
public void operator() {
// 创建Scanner对象用于接收控制台输入的信息
Scanner input = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入第" + (1 + i) + "个兵营的名字:");
// 接收控制台输入的信息
String name = input.next();
// 将局部变量赋值给成员变量
this.name = name;
System.out.println("请输入第" + (1 + i) + "已创建士兵的总数");
int selfCount = input.nextInt();
this.selfCount = selfCount;
count = count + this.selfCount;
}
System.out.println("当前3个兵营共创建士兵"+count+"人");
}
public static void main(String[] args){
Barracks barracks = new Barracks();
barracks.operator();
}
}