Java中class的前面添加public和不添加public的区别
Java中class的前面添加public和不添加public的区别:
需要知道的是修饰类和变量的用来控制这个被修饰的类和变量的适用范围的修饰词有:
1.public:表示公开的类和变量,既所有的类都可以引入使用的。
2.protected:表示受保护的类,只有子孙类和本类可以引入使用。
默认:表示同包中和本类中可以引入使用。
3.private:表示私人的,只有在本类中可以引入使用。
所以显而易见,如果一个class前面如果添加了public修饰则可以被所有类引入使用,如果没有
加任何修饰词,那么就只能够被同包中的类和本类引入使用。
在java中public void与public static void有什么区别 ?
public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;public static void 修饰是静态方法,属于类,使用类名.方法名直接调用。
非静态方法之间可以互相调用,非静态方法也可以调用静态方法;但是静态方法不可以直接调用(未初始化的)非静态方法。由于 public static void main 作静态方法,所以遵循这个原则。
但是 Java 可以通过对象名调用静态方法(对象名.静态方法)。Java 中不会导致语法错误(syntax error),但是不推荐这样使用,静态方法与非静态方法调用时应当绝对区分;而且其他 OOP 语言如 C#,Swift,Objective-C 都没有这样的语法。
2018-10-29
至于类中字段和方法(以及内部类等)的访问权限修饰符才可以使public、private、protected、不写。
所以讨论类,成员的访问权限修饰符的时候应该分别讨论,我看其他评论都是揉在一起说的,不太清晰,然后自己也动手验证过了,如果有不对的地方请指出。
需要知道的是修饰类和变量的用来控制这个被修饰的类和变量的适用范围的修饰词有:
public:表示公开的类和变量,既所有的类都可以引入使用的
protected:表示受保护的类,只有子孙类和本类可以引入使用
默认:表示同包中和本类中可以引入使用
private:表示私人的,只有在本类中可以引入使用
所以显而易见,如果一个class前面如果添加了public修饰则可以被所有类引入使用,如果没有加任何修饰词,那么就只能够被同包中的类和本类引入使用。