java
实例变量和局部变量
实例变量是记录这个类中对象的特点的每一个对象的实例变量都可以不同(例如名字,性别等),其中一个对象的实例变量改变不会影响其他的变量.
类变量是一种特殊的实例变量,他的特殊在于所有的对象的类变量都是相同的,当一个对象改变了类变量那么所有对象的类变量都会改变(可以视为所有的对象共用同一个类变量),
局部变量与c语言中的局部变量基本相同,只生存在固定的函数内(一般定义在方法中).
实例变量(成员变量),静态变量(类变量).
定义方式
public class girl {
private int age; //实例变量
public static int gender; //类变量
public girl() {
}
public girl(int age) {
int t; //局部变量
if (age >= 18 && age <= 50)
this.age = age;
else
System.out.println("错误");
}
}
this
在上述代码中出现了this这个关键字,这个关键字使用来区分局部变量和实例变量的,this中储存的是调用这个方法的对象的地址,它可以通过对象地址来准确的调用到对象的实例变量.
构造器
构造器是在调用这个类来创建对象同时给他赋初值的时候使用的,如果在一个类中没有编写构造器,那么默认是只有一个空参数的构造器.
在编写构造器时要注意,一旦自己编写了构造器系统便不会给予空参数的构造器,所以当编写时要手动编写.
代码
public class girl {
private int age;
public static int gender;
public girl() { //空参的构造器
}
public girl(int age) { 带参的构造器
int t;
if (age >= 18 && age <= 50)
this.age = age;
else
System.out.println("错误");
}
}
private和public
当一个变量定义前有private这个前缀代表这个变量无法在其他类中被改变只能在所定义的类中进行改变,好处是可以保护数据不被滥用.public则可以在任何类被改变.
如果想改变前缀有private的变量可以这样
public class girl {
private int age;
public static int gender;
public girl() {
}
public girl(int age) {
int t;
if (age >= 18 && age <= 50)
this.age = age;
else
System.out.println("错误");
}
public void setage(int x) { //改变方式
if (x >= 18 && x <= 50)
age = x;
else
System.out.println("错误");
}
}
String类
String定义的变量有两种赋值方式一种是通过直接赋值的方式,另一种则是通过new来进行赋值.
这两种赋值方式不同的点在于赋值的字符串存储地方不同.
当直接赋值时,字符串会存储在堆区一个特殊的地方,String存储的是这个字符串的地址,当变量被赋值字符串时,系统会扫描这个区域,如果发现一样的字符串则将这个字符串的地址赋给它.也就是说两个变量所储存的地址是同一个.
new赋值的变量则不同,new会在堆区新建一个空间来储存字符串.
当他们被用来比较时就可以看出来(因为比较的是地址).
public class Main {
public static void main(String[] args) {
String a="jjm"; //直接赋值
String b=new String("jjm"); //通过new赋值
String c="jjm";
System.out.println(a==b);
System.out.println(a==c);
}
}
这个程序运行的结果是