标签:方法参数 int 直接 关系 new sys 简写 继承 子类
包https://www.jianshu.com/p/c798a019f2ec Java定义了一种名字空间,称之为包:package,用于解决名字冲突。一个类总是属于某个包,类名只是一个简写,真正的完整类名是包名.类名。 例如: 小明的Person类存放在包ming下面,因此,完整类名是ming.Person; 小红的Person类存放在包hong下面,因此,完整类名是hong.Person; 小军的Arrays类存放在包mr.jun下面,因此,完整类名是mr.jun.Arrays; JDK的Arrays类存放在包java.util下面,因此,完整类名是java.util.Arrays。 在定义class的时候,我们需要在第一行声明这个class属于哪个包。 //小明的Person.java文件: package ming; // 申明包名ming public class Person { } //小军的Arrays.java文件: package mr.jun; // 申明包名mr.jun public class Arrays { } 注意:如果在定义包的时候出现了“.”,那么就表示子目录,多个.java文件可以属于一个包。 假设以package_sample作为根目录,src作为源码目录,那么所有文件结构就是: package_sample └─ src ├─ hong │ └─ Person.java │ ming │ └─ Person.java └─ mr └─ jun └─ Arrays.java 包的作用域一共有三种情况: 修饰符public:标记为public的部分可以被任意的类使用; 修饰符private:标记为private的部分只能被定义他们的类使用; 没有指定修饰符的部分:这部分(类、方法和变量)可以被同一个包中的所有方法访问 包的导入(import) 在一个class中,总会引用其他的class。例如,小明的ming.Person类,如果要引用小军的mr.jun.Arrays类,他有三种写法 // Person.java 直接写出完整类名 package ming; public class Person { public void run() { mr.jun.Arrays arrays = new mr.jun.Arrays(); } } // Person.java package ming; import mr.jun.Arrays;//用import语句,导入小军的Arrays public class Person { public void run() { Arrays arrays = new Arrays(); } } // Person.java package ming; import mr.jun.*;// 导入mr.jun包的所有class: public class Person { public void run() { Arrays arrays = new Arrays(); } }//一般不推荐这种写法,因为在导入了多个包后,很难看出Arrays类属于哪个包 注意:但是有时会在一个文件中导入不同的包,并且不同的包里有可能会存在同名类,那么只能import其中一个,另一个必须写完整类名。
还有一种import static的语法,它可以导入可以导入一个类的静态字段和静态方法: package main; // 导入System类的所有静态字段和静态方法: import static java.lang.System.*; public class Main { public static void main(String[] args) { // 相当于调用System.out.println(…) out.println("Hello, world!"); } }//用处较少 Java编译器最终编译出的.class文件只使用完整类名,因此,编译器遇到一个class,会按规则确定类名,如果无法确定类名,则编译报错。
如果是完整类名,就直接根据完整类名查找这个class; 如果是简单类名,按下面的顺序依次查找: 查找当前package是否存在这个class; 查找import的包是否包含这个class; 查找java.lang包是否包含这个class。 作用域 定义为public的class、interface可以被其他任何类访问 定义为public的field、method可以被其他类访问,前提是首先有访问class的权限 定义为private的field、method无法被其他类访问,但嵌套类拥有访问private的权限 protected作用于继承关系。定义为protected的字段和方法可以被子类访问,以及子类的子类 局部变量作用域从变量声明处开始到对应的块结束。方法参数也是局部变量。 注意:定义在一个class内部的class称为嵌套类(nested class),Java支持好几种嵌套类。
标签:方法参数 int 直接 关系 new sys 简写 继承 子类
原文地址:https://www.cnblogs.com/nsss/p/11417542.html