public calls Student{
static String schoolName ="清华小学"; //类变量
String classNane ="中班"; //实例变量
public void show(){
/*局部变量*/
int age =7;
String name ="张华";
}
}
1300Java 变量类型
package hello;
//首先要知道变量应该是赋值以后才能使用的,但是有些不必人为赋值就有默认初始值,但是有些要人为定义初始值
//所以有些直接使用的并不是没有赋值,而是系统自定义了初始值,所以不会报错
public class Variable {
public String instance = "实例变量";
public static String variable = "静态变量"; //静态变量的定义方式
public static String CONST = "静态常量"; //静态常量的定义方式
public static void main(String[] args) {
String local = "局部变量"; //类似这个就是局部变量,不可用访问修饰符修饰,没有默认初始值
System.out.println(local); //局部变量就是在方法或语句块中的变量
Global global = new Global(); //类似这个就是实例变量,也称全局变量
System.out.println(global.instance); //实例变量就必须先把类new一个出来才能使用,因为他是在类中,方法外的
System.out.println(variable); //来瞅瞅静态变量,也叫类变量,静态变量的访问方式1(在自己类的时候)
System.out.println(Global.variable); //静态变量的访问方法2(不在自己类的时候)
}
}
class Global{
public String instance = "实例变量"; //实例变量在一个类的里面,语句块的外面
public static String variable = "静态变量";
Global(){ //在类的内部使用自己的实例变量:要么老老实实new一个出来,就像上面那个
//第二种方法就是在函数里面使用实例变量,注意,如果方法是静态方法参照方法1
System.out.println(instance);
System.out.println(variable);
}
public void Instance() {
System.out.println(instance); //静态变量访问方法1(在自己类的时候),静态常量和静态变量访问相同
System.out.println(Variable.CONST);
}
}
1299Java 变量类型
是否可以从一个static方法内部无法对非static方法的调用?
public class Xix {
// 静态成员
public static String string="static成员";
// 普通成员
public String string2="非static成员";
// 静态方法
public static void method(){
string="sss";
//string2="sss";编译报错,因为静态方法里面只能调用静态方法或静态成员
//method2();
System.out.println("这是static方法,static方法与对象无关");
}
// 普通方法
public void method2(){
string ="string1";
string2="string2";
method(); //非静态方法里面可以发出对static方法的调用
System.out.println("这是非static方法,此方法必须和指定的对象关联起来才起作用");
}
public static void main(String[] args) {
Xix x=new Xix();
x.method2();// 引用调用普通方法
x.method();// 引用调用静态方法
}
}
public class Test {
public static int staticVar=0;//静态变量,加static关键字
public int instanceVar=0;//实例变量
public void VariantTest(){
staticVar++;
instanceVar++;
System.out.println("staticVar"+staticVar+",instanceVar="+instanceVar);
}
public static void main(String[] args) {
for(int k=0;k<6;k++){
Test p=new Test();
p.VariantTest();
}
}
}
1302Java 修饰符
JAVA 的类(外部类)有 2 种访问权限: public、default。
而方法和变量有 4 种:public、default、protected、private。
其中默认访问权限和 protected 很相似,有着细微的差别。
修饰符:abstract、static、final
1301Java 变量类型
Java语言支持的变量类型有:
public calls Student{ static String schoolName ="清华小学"; //类变量 String classNane ="中班"; //实例变量 public void show(){ /*局部变量*/ int age =7; String name ="张华"; } }1300Java 变量类型
package hello; //首先要知道变量应该是赋值以后才能使用的,但是有些不必人为赋值就有默认初始值,但是有些要人为定义初始值 //所以有些直接使用的并不是没有赋值,而是系统自定义了初始值,所以不会报错 public class Variable { public String instance = "实例变量"; public static String variable = "静态变量"; //静态变量的定义方式 public static String CONST = "静态常量"; //静态常量的定义方式 public static void main(String[] args) { String local = "局部变量"; //类似这个就是局部变量,不可用访问修饰符修饰,没有默认初始值 System.out.println(local); //局部变量就是在方法或语句块中的变量 Global global = new Global(); //类似这个就是实例变量,也称全局变量 System.out.println(global.instance); //实例变量就必须先把类new一个出来才能使用,因为他是在类中,方法外的 System.out.println(variable); //来瞅瞅静态变量,也叫类变量,静态变量的访问方式1(在自己类的时候) System.out.println(Global.variable); //静态变量的访问方法2(不在自己类的时候) } } class Global{ public String instance = "实例变量"; //实例变量在一个类的里面,语句块的外面 public static String variable = "静态变量"; Global(){ //在类的内部使用自己的实例变量:要么老老实实new一个出来,就像上面那个 //第二种方法就是在函数里面使用实例变量,注意,如果方法是静态方法参照方法1 System.out.println(instance); System.out.println(variable); } public void Instance() { System.out.println(instance); //静态变量访问方法1(在自己类的时候),静态常量和静态变量访问相同 System.out.println(Variable.CONST); } }1299Java 变量类型
是否可以从一个static方法内部无法对非static方法的调用?
public class Xix { // 静态成员 public static String string="static成员"; // 普通成员 public String string2="非static成员"; // 静态方法 public static void method(){ string="sss"; //string2="sss";编译报错,因为静态方法里面只能调用静态方法或静态成员 //method2(); System.out.println("这是static方法,static方法与对象无关"); } // 普通方法 public void method2(){ string ="string1"; string2="string2"; method(); //非静态方法里面可以发出对static方法的调用 System.out.println("这是非static方法,此方法必须和指定的对象关联起来才起作用"); } public static void main(String[] args) { Xix x=new Xix(); x.method2();// 引用调用普通方法 x.method();// 引用调用静态方法 } }运行结果:
结论:
1298Java 变量类型
public class Test { public static int staticVar=0;//静态变量,加static关键字 public int instanceVar=0;//实例变量 public void VariantTest(){ staticVar++; instanceVar++; System.out.println("staticVar"+staticVar+",instanceVar="+instanceVar); } public static void main(String[] args) { for(int k=0;k<6;k++){ Test p=new Test(); p.VariantTest(); } } }输出结果
结论: 每次创建一个新对象就会分配一个实例变量,而始终只会分配一个静态变量