目录
包的需求引出
在开发中,经常会出现,很多人同时开发一个项目,此时很容易造成类名的重复,因此就引入了包的概念,在不同包下,相同的类目也不会报错,使用时,引入对应的包即可。
包的作用
1.区分相同名字的类
2.当类很多时,可以很好的管理类
3.控制访问范围
包的命名和规则
命名规则:
只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字(public、protected、privateclass、interface、abstract、if、else、switch、case、break、default、continue、while、do、for 等等)或保留字(goto、const、null)
命名规范:
一般是小写字母+小圆点一般是 com.XXX.XXX.XXX ‘.’表示新建一个文件夹
Java里比较常用的包
java.lang.* //lang包是基本包,默认引入,不需要再引入
.java.util.* //util包,系统提供的工具包,工具类,比如Scanner
java.net.* //网络包,网络开发 java.awt.* //是做java的界面开发,GUI
java.IO.*//IO流的包,用于IO读取
包的注意事项和使用细节
1.package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package
2.import指令 位置放在package的下面,在类定义前面,可以有多句且没有顺序 要求。
代码演示:
package com.package_;
//1.package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package
//注意位置不可以交换,如果把package 和 import的位置交换了,那么会报错
//2.import指令 位置放在package的下面,在类定义前面,可以有多句且没有顺序 要求。
import java.util.Scanner;
/**
* 演示包的注意事项和使用细节
*/
public class packageDetail {
public static void main(String[] args) {
//使用scanner工具类需要引入java.util.Scanner;这个包
Scanner scanner = new Scanner(System.in);
}
}
访问修饰符
访问修饰符的概念
java提供四种访问控制修饰,用于控制方法和属性(成员变量)的访问权限(范围):
1.公开级别:用public修饰,对外公开 .
2.受保护级别:用protected修饰,对子类和同一个包中的类公开
3.默认级别:没有修饰符号,向同一个包的类公开.
4.私有级别:用private修饰,只有类本身可以访问,不对外公开.
代码演示:
1.注意代码中,A类是新建的一个类没有写在同一个方法中了
package idea.modifier;
/**
* 演示访问修饰符的区别
*/
public class Test {
public static void main(String[] args) {
//1.公开级别:用public修饰,对外公开 .
//2.受保护级别:用protected修饰,对子类和同一个包中的类公开
//3.默认级别:没有修饰符号,向同一个包的类公开.
//4.私有级别:用private修饰,只有类本身可以访问,不对外公开.
A a = new A();
System.out.println(a.age);
System.out.println(a.name);
System.out.println(a.sum);
//我们可以看到,private是私有的意思,如果一个变量或者方法被private修饰了,那么就不能够,通过对象名.属性名直接去访问,需要A类提供对应的get 和 set方法才能够进行访问
//System.out.println(a.loop);
System.out.println(a.isLoop());//这样我们就可以看到输出的效果了,因为我们没有给属性初始化,因此输出的内容都是默认值
}
}
package idea.modifier;
class A {
public int age;
protected String name;
double sum;
private boolean loop;
public boolean isLoop() {
return loop;
}
public void setLoop(boolean loop) {
this.loop = loop;
}
public void hi01() {
}
protected void hi02() {
}
void hi03() {
}
private void hi04() {
}
}
访问修饰符的注意事项
1)修饰符可以用来修饰类中的属性,成员方法以及类
2)只有默认的和public才能修饰类!,并且遵循上述访问权限的特点。
4)成员方法的访问规则和属性完全一样.
代码演示:
1.如果想要访问修饰符,修饰类,那么只能使用,public或者是默认(也就是什么都不写),如果使用private 或者是 protracted 修饰类,那么会报错
访问修饰符权限表格(非常重要)
访问级别 | 访问控制修饰符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|---|
公开 | public | √ | √ | √ | √ |
受保护 | protracted | √ | √ | √ | × |
默认 | 没有修饰符 | √ | √ | × | × |
私有 | private | √ | × | × | × |
package idea.modifier;
/**
* 演示访问修饰符的注意事项和使用细节
*/
public class TestDetail {
public static void main(String[] args) {
//1)修饰符可以用来修饰类中的属性,成员方法以及类
//4)成员方法的访问规则和属性完全一样.
A a = new A();
a.hi01();
a.hi02();
a.hi03();
//我们可以看到,在不同类中,被private修饰的方法就不能使用
//a.hi04();
}
}
//2)只有默认的和public才能修饰类!,并且遵循上述访问权限的特点。
//这样的写法都是错误的
//private class B{
//
//}
//protected class B{
//
//}
//注意在Java中只能有一个public类
package idea.modifier;
class A {
//定义了四个不同修饰符修饰的属性
public int age;
protected String name;
double sum;
private boolean loop;
public boolean isLoop() {
return loop;
}
public void setLoop(boolean loop) {
this.loop = loop;
}
public void hi01() {
}
protected void hi02() {
}
void hi03() {
}
private void hi04() {
}
}
小结:
因为我们还没有学习到继承,因此不同的访问修饰符,在子类和父类继承的关系,我们讲解到位,后续在讲到继承的时候,还会在讲一遍