问答详情
源自:7-1 什么是 Java 中的封装

public有什么用?

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有什么不同?

提问者:慕虎7175789 2017-07-28 14:46

个回答

  • 喵喵小喵
    2017-07-28 17:05:26
    已采纳

    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()
    }
    }

  • 慕标7553147
    2017-07-31 04:03:20

    public是所有包内的类和方法都可以调用,porjected是本包里所有类与方法可以调用,private是只有本类和本类的方法可以调用。

    感觉这个教程的教学思路很有问题。我网上下了一个JAVA入门到精通 第四版的光盘内容,里面的讲解很全也很容易懂。

  • 慕用247130
    2017-07-28 20:26:42

    理解为谁都去调用 

  • qq_唯美青少年_0
    2017-07-28 15:07:53

    public是访问修饰符  而static是设置访问权限的   访问修饰符被访问权限从大到小的有public,protected,default(默认的),private.  因此public所修饰的可以在整个项目中被访问,而带有静态修饰符static修饰的只能被带有static的所访问.