目录
一.包
1.包的基本介绍
a.区分相同名字的类
b.当类很多时,可以很好的管理类(看java API文档)
c.控制访问范围
2.包的基本语法
package com.hspedu;
说明:
1)package关键字,表示打包
2)com.hspedu;表示包名
3.包的本质
4.包的命名规则和规范
1)规则:只能包含数字,字母,下划线,小圆点,但不能用数字开头,不能时关键字和保留字
eg:demo.class.exec1//错误 class时关键字
demo.12a//错误 12a时数字开头
2)规范:一般时com.公司名.项目名.业务模块名
eg:com.sina.crm.user//用户模块
5.常用的包
1)java.lang.* //lang包时基本包,默认引入,不需要在引入
2)java.util.* //util 包,系统提供的工具包,工具类,使用Scanner
3)java.net.* //网络包,网络开发
4)java.awt.*//是做java的界面开发,GUI
补充:.*表示该包下面所有的类
6.如何引入包
语法:import 包;
eg:import java.util.Scanner;
7.举例
1)输出俩个Dog包中类的属性
创建两个Dog包
引用并输入类的属性
package com.use;
import com.xiaoqiang.Dog;
//import com.xiaoming.Dog;//错误不能同时引入相同类名
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog);
com.xiaoming.Dog dog1 = new com.xiaoming.Dog();
System.out.println(dog1);
}
}
2)用Arrays进行排序
package com.hspedu.pkg;
import java.util.Arrays;
public class import01 {
public static void main(String[] args) {
int[] arr = {-1,20,2,13,32,0};
//进行排序
//传统方法是,自己编写程序排序(比如冒泡)
//系统是提供了相关类,可以进行排序
Arrays.sort(arr);
//输出结果
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
8.使用细节
//package的作用是声明当前类所在的包,需要放在类的最上面
//一个类中最多只有一个package
package com.hspedu.pkg;
//import指令 位置放在package的下面,在类定义前面,可以有多句且没有顺序要求
import java.util.Arrays;
import java.util.Scanner;
//...
//老韩建议:我们需要什么类就导入哪个类即可,不建议使用*的方式引入
//import java.util.Scanner;//表示只会引入java.util包下的Scanner
//import java.util.*;//表示将java.util包下的所有类都引入
//类定义
public class pkgdetail {
public static void main(String[] args) {
Scanner myscanner = new Scanner(System.in);
int[] arr = {2,31,0,2};
Arrays.sort(arr);
}
}
二.访问修饰符
java提供四种访问控制修饰符号,用于控制方法和属性的访问权限
1.四种访问修饰符
1)公开级别:用public修饰,对外公开
2)受保护级别:用protected修饰,对子类和同一个包中的类公开
3)默认级别:没有修饰符号,向同一个包的类公开
4)私有级别:用private修饰,只有类本身可以访问,不对外公开
重点,背下来。
2.举例
在A类中定义属性并初始化,在modifier包中的B和test进行引用,在pkg包中test进行引用
在A类中
package com.hspedu.modifier;
public class A {
//四个属性
public int n1 = 100;
protected int n2 = 200;
int n3 = 300;
private int n4 = 400;
public void m1(){
//该方法可以访问四个属性
System.out.println(n1 + " "+ n2+" "+n3+" "+n4);
}
}
在B类中
package com.hspedu.modifier;
public class B {
public void say(){
A a = new A();
//在同一个包下,可以访问public,protected和默认,不能访问private
System.out.println(a.n1+" "+a.n2+" "+a.n3);
}
}
在modifier包中test 和 输出结果
package com.hspedu.modifier;
public class test {
public static void main(String[] args) {
A a = new A();
a.m1();
B b = new B();
b.say();
}
}
在pkg包中test 和 输出结果
package com.hspedu.pkg;
import com.hspedu.modifier.A;
public class test {
public static void main(String[] args) {
A a = new A();
//在不同包下,可以访问public修饰的属性或方法
//但是不能访问其他修饰符修饰的属性或方法
System.out.println(a.n1);
}
}
3.使用的注意事项
1)修饰符可以用来修饰类中的属性,成员方法以及类
2)只有默认的和public才能修饰类!,并且遵循上述访问权限的特点
3)成员方法的访问规则和属性完全一样
4)一个Java文件中只能有一个public类
5)如果文件中不止一个类,文件名必须与public类名一致
子类的访问权限在继承的概述