public class HelloWorld { public float zjc; static float zjc2; public static float zjc3; public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(zjc);//eclipse给画了红波浪线= = System.out.println(zjc2); System.out.println(zjc3); } }
问题来了,public究竟有什么用?本以为public用来修饰方法,static既可以用来修饰方法又可以用来修饰成员变量,现在才知道还可以修饰成员变量,但有什么用吗?
之前学到public修饰的成员可以被任何代码调用,不太理解,究竟和static有什么不同?
public是访问修饰符没错,但static不是什么设置访问权限。
我们正常要用类的成员或者方法都要先实例化对象后才能用(对象.方法()或者对象.变量)。但如果某方法或成员是static声明的就可以不需要实例化对象就可以直接引。比如:
未声明为static
class Person{
int age;
public void move(){
…
}
}
class Girl{
void run(){
int girlAge;
Person p= new Person();
girlAge= p.age; //这里通过对象引用访问成员变量age
p.move(); //这里通过对象引用访问成员函数move()
}
}
声明为static
class Person{
static int heigh;
static void move(){
…
}
}
class Boy{
void run(){
int boyHeigh;
boyHeigh = Person.heigh; //这里通过类名访问成员变量heigh
Person.move(); //这里通过类名访问成员函数move()
}
}
public是所有包内的类和方法都可以调用,porjected是本包里所有类与方法可以调用,private是只有本类和本类的方法可以调用。
感觉这个教程的教学思路很有问题。我网上下了一个JAVA入门到精通 第四版的光盘内容,里面的讲解很全也很容易懂。
理解为谁都去调用
public是访问修饰符 而static是设置访问权限的 访问修饰符被访问权限从大到小的有public,protected,default(默认的),private. 因此public所修饰的可以在整个项目中被访问,而带有静态修饰符static修饰的只能被带有static的所访问.