本节课,学员评论
没有形参的方法
有形参的方法
形参长度可变的方法
如何调用方法
方法的参数传递机制
方法的返回值类型
方法的重载
变量
成员变量和局部变量
public class LenChange02 {
public static void ergodic(String name, String... arr){
int a = 0;
System.out.println(a);
// name = "你好";
int tag = 0;
for(int i = 0; i < arr.length; i++){
System.out.println(name);
String arrTmp = arr[i];
if("邓超".equals(arrTmp)){
name = i + "";
tag = 1;
System.out.println(name);
}
System.out.println(arrTmp);
System.out.println(name);
}
if(tag == 0){
System.out.println("数组的元素没有等于 邓超");
}else if(tag ==1){
System.out.println("符合条件的索引值等于" + name);
System.out.println(name);
}else{
System.out.println(name);
System.out.println("else 前面的if 和所有的else if都不匹配,则会执行else模块");
}
System.out.println(name);
}
// name = "";
}
即,在Java中,根据定义变量位置的不同,可以将变量分为2大类:成员变量和局部变量。
例如,代码中变量tag就是一个成员变量,成员变量就是咱们之前说的属性;例子中,定义在方法中的tag就是一个局部变量,局部变量值得是在一个方法内定义的变量。不管是成员变量,还是局部变量,都需要遵守相同的命名规则:从语法角度来看,只要是一个合法的标识符就可以了,但是从程序可读性角度来看,应该是有意义的字母连缀而成,其中第一个单词首字母小写,后面每个单词首字母大写。Java程序中的变量可以划分为如下示意图。
成员变量被分为类属性和实例属性两种,定义一个属性时不使用static修饰的就是实例属性,使用static修饰的就是类属性。其中,类属性从这个类的准备阶段起开始存在,执行系统完全销毁这个类,类属性的作用域与这个类的生存范围相同;而实例属性则从这个类的实例被创建开始存在,知道系统完全销毁这个实例,实例属性的作用域与对应实例的生存范围相同。
正是基于这个原因,把类属性和实例属性统称为成员变量,其中类属性可以理解为类成员变量,它作为类的一个成员,与类共存亡;实例属性则可理解为实例成员变量,它作为实例的一个成员,与实例共存亡。
只要类存在,程序就可以访问该留的类属性,在程序中访问类属性的语法 是这样:
类.类属性
只要实例存在,程序就可以访问该实例的实例属性,在程序中访问实例属性的语法 是这样:
实例.实例属性
当然,类属性也可以让类的实例来访问,通过示例访问类属性的语法 是这样:
实例.类属性
但是这个示例访问的并不是这个实例的属性,依然是访问它对应的类属性。
public class GoodBoy {
public String name;
public int age;
public static boolean isGoodness;
}
public class GoodBoyTest {
public static void main(String[] args){
System.out.println("类GoodBoy的类属性isGoodness的值为" +
GoodBoy.isGoodness);
GoodBoy gb01 = new GoodBoy();
System.out.println("实例gb01的实例属性name为" + gb01.name + ",实例"
+ "属性age为" + gb01.age +",类属性isGoodness为" +gb01.isGoodness);
// gb01
gb01.name ="杨颖";
gb01.age = 26;
gb01.isGoodness = true;
// GoodBoy.isGoodness = true;
System.out.println("实例gb01的实例属性name为" + gb01.name + ",实例"
+ "属性age为" + gb01.age +",类属性isGoodness为" +gb01.isGoodness);
GoodBoy gb02 = new GoodBoy();
System.out.println("实例gb02的实例属性name为" + gb02.name + ",实例"
+ "属性age为" + gb02.age +",类属性isGoodness为" +gb02.isGoodness);
}
}
成员变量可以被显示初始化,只要为一个类定义了类属性或实例属性,则系统会在这个类的准备阶段或创建这个类的实例时进行默认初始化,成员变量默认初始化时赋值规则与数组动态初始化时数组元素的赋值规则相同。
如果通过一个实例修改了类属性的值,由于这个类属性并不属于该实例,而是属于他对对应的类。因此,修改的依然是类的类属性,与通过该类来修改类属性的结果完全相同,这会导致该类的其他实例来访问这个类属性的时候也将获得这个被修改过的值。
局部变量根据定义形式的不同,分为3种:形参、方法局部变量、代码块局部变量。
第一种局部变量,形参。形参,即在声明方法形参列表时定义的变量,形参的作用域在整个方法内有效。