Java中class的前面添加public和不添加public的区别

Java中class的前面添加public和不添加public的区别,第1张

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 都没有这样的语法。

java中创建对象时其实不是通过类直接创建的,如果你想要使用Test类,在java中JVM首先加载Test.java文件的字节码文件Test.class(也就是编译后的文件),当JVM(java虚拟机)加载字节码文件后,自动为该类创建自己的class对象,在通过class对象创建你以后要创建的对象\x0d\x0a例如:Test t1=new Test() Test t2=new Test() 我们都知道java中 == 是比较两个对象的内存地址,t1.getClass()==t2.getClass()返回是true,证明他们是一个class对象创建出来的。那么可Class对象的意义就是标志一个类了,Class类为我们提供了很多方法,比如反射技术常用到的Class.forName("包.类")这样可以获取一个类的Class对象。\x0d\x0a例如:Test类在org.abc这个包里,那么可以用Class.forName("org.abc.Test")这样就返回一个Test类的class对象,拿到这个对象接下来可以做很多事,调用这个类的方法,属性,构造方法等,具体你去研究下反射技术。如果有不懂在问我。\x0d\x0a针对一种数据类型的Class转换,比如String.class,int.class,类.class等\x0d\x0a你提出的问题Class参数,就是让你传一种Class对象进去。比如String.class,int.class,类.class等\x0d\x0aTest.class==t1.getClass()返回true,怕你有误解,说明一下类和对象都可以获取class对象的。并且这个对象是一个对象,因为一个类对应自己的class对象。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7964278.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存