java中实例变量与类变量的区别?
java中实例变量与类变量的区别?
1. 实例变量还是类变量他们都是成员变量
2. 成员变量---定义在java类除方法之外的位置
public class Test{
int stuid; // 成员变量
public void method(){
}
}
成员变量的特征:
1可以使用访问修饰【public 缺省的[不写]】
public class Test{
public String stuname;
String stuaddress;
}
2.可以没有初始值,程序在运行的时候会自动给予默认的初始值,也可以自己设置一个初始值
public class Test{
public String stuname=”zhangsan”;
String stuaddress;
}
3. 可以在本类中的任何一个方法中使用,忽略方法的访问修饰
public class Test{
public String stuname=”zhangsan”;
public void method1(){
System.out.println(“stuname==”+stuname);
}
private void test1(){
System.out.println(“stuname==”+stuname);
}
}
实例变量还是类变量他们都是成员变量
实例变量---成员变量---最普通的成员变量
实例变量具有成员变量基本特征
1.没有使用static修饰的成员变量
2可以使用访问修饰【public 缺省的[不写]】
3.可以没有初始值,程序在运行的时候会自动给予默认的初始值,也可以自己设置一个初始值
4.可以在本类中的任何一个方法中使用,忽略方法的访问修饰
5.在其他的类中使用实例变量,只能通过对象访问
public class Test{
public String stuname=”zhangsan”; //成员变量---实例变量
}
public class Other{
public static void main(String args[]){
//创建Test类的对象
Test t1=new Test();
System.out.println(t1.stuname); //zhangsan
}
}
6.不能在用一个类的多个对象之间共享数据
public class Test{
public String stuname=”zhangsan”; //成员变量---实例变量
}
public class Other{
public static void main(String args[]){
//创建Test类的对象
Test t1=new Test();
System.out.println(t1.stuname); //zhangsan
t1.stuname=”李四”;
System.out.println(t1.stuname); //李四
Test t2=new Test();
System.out.println(t2.stuname); //zhangsan
}
}
类变量--静态成员变量---成员变量
使用static修饰符的成员变量
1可以使用访问修饰【public 缺省的[不写]】
2.可以没有初始值,程序在运行的时候会自动给予默认的初始值,也可以自己设置一个初始值
3.可以在本类中的任何一个方法中使用,忽略方法的访问修饰
4.在其他类中访问的时候,可以使用对象,也可以使用类名
public class Test{
public static String stuname=”zhangsan”; //类变量--静态成员变量
}
public class Other{
public static void main(String args[]){
//使用类名
System.out.println(Test.stuname); //zhangsan
//使用对象
Test t1=new Test();
System.out.println(t1.stuname); //zhangsan
}
}
5.能同一个类的多个对象之间共享数据
public class Test{
public static String stuname=”zhangsan”; //类变量--静态成员变量
}
public class Other{
public static void main(String args[]){
Test t1=new Test();
System.out.println(t1.stuname); //zhangsan
t1.stuname=”lisi”;
System.out.println(t1.stuname); //lisi
Test t2=new Test();
System.out.println(t2.stuname); //lisi
}
}
实例变量
1.没有使用static修饰的成员变量
2.可以使用访问修饰【public 缺省的[不写]】
3.可以没有初始值,程序在运行的时候会自动给予默认的初始值,也可以自己设置一个初始值
4.可以在本类中的任何一个方法中使用,忽略方法的访问修饰
5.在其他的类中使用实例变量,只能通过对象访问
6.不能在用一个类的多个对象之间共享数据
类变量
1.有使用static修饰的成员变量
2可以使用访问修饰【public 缺省的[不写]】
3.可以没有初始值,程序在运行的时候会自动给予默认的初始值,也可以自己设置一个初始值
4.可以在本类中的任何一个方法中使用,忽略方法的访问修饰
5.在其他的类中使用类变量,能通过对象访问,也可以类名访问
6.能在用一个类的多个对象之间共享数据

