Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说JAVA中的public class与class的区别详解[亲测有效],希望能够帮助你!!!。
1.为了控制某个类的访问权限,修饰词必须出现在关键字class之前。例如:public class Animal {}
2.在编写类的时候可以使用两种方式定义类:
(1)public class定义类
public class Animal{
...
}
(2)class定义类
class Animal{
}
1. 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
2. 被public修饰的类可以被其他包访问。如果现在的库名是com,那么就可容易通过下面的声明访问Animal:
import com.Animal;
或者
import com.*;
例如:定义一个类(文件名为:Animal.java)
public class AnimalDemo{//声明一个类,类名称的命名规范:所有的首字母必须的大写
public static void main(String[] args){//主方法
System.out.prinln("Helloworld!!!");//系统输出,在屏幕上打印。
}
}
此类使用了public class声明,类名称是AnimalDemo,但是文件名称是Animal.java,所以,此时编译时会出现错误。
例如:定义一个类(文件名为:Animal.java)
class AnimalDemo{//声明一个类,类名称的命名规范:所有的首字母必须的大写
public static void main(String[] args){//主方法
System.out.prinln("Helloworld!!!");//系统输出,在屏幕上打印。
}
}
文件名称为Animal.java,文件名称与类名称不一致,但是因为使用了class声明,此时编译不会产生任何错误,但是生成之后的class文件名称是和class声明名称完全一致的AnimalDemo.class,执行的时候不能执行Animal.java,而是应该执行AnimalDemo.java
在一个 *.java的文件中,只能有一个public class的声明,但是允许多个class的声明。
public class AnimalDemo{
public static void main(String[] args){
System.out.println("HelloWorld!!");
}
}
class Dog{}
class Pig{}
在上面的文件中,定义了三个类,那么此时程序编译之后会形成三个*.class文件。
例如:Duck.java
package tdmp.core.util;
/**
* Created by longzf on 2019/3/28.
*/
public class Duck {
Duck(){
System.out.println("this is small dog!!!");
}
public void site(){
System.out.println("site");
}
}
2 执行java程序AnimalDemo.java
package tdmp.core;
import tdmp.core.util.*;
/**
* Created by longzf on 2019/3/28.
*/
public class AnimalDemo {
public AnimalDemo() {
System.out.println("this is animal park");
}
public static void main(String[] args) {
AnimalDemo x = new AnimalDemo();
Duck y = new Duck();
y.site();
}
}
编译、运行:会出现错误,
因为Duck.java是在package tdmp.core.util下,class定义的类,该类不能被其他包访问,
如果把Duck()方法修改为:public Duck() 再编译、运行
package tdmp.core.util;
/**
* Created by longzf on 2019/3/28.
*/
public class Duck {
public Duck(){
System.out.println("this is small dog!!!");
}
public void site(){
System.out.println("site");
}
}
再运行,就可以了