包和final、权限修饰符和代码块(超详细)
一:包和final
(1)什么是包?
包就是文件夹。用来管理各种不同功能的Java类,方便后期代码维护
(2)包名的规则?
公司域名反写 + 包的作用,需要全部英文小写,见名知意。com.itheima.domain
全类名/全限定名:com.itheima.domain.Student
(3)使用其他类的规则?
使用其他类时,需要使用全类名
public class Test {
public static void main (String[] args) {
com.itheima.domain.Student s = new com.itheima.domain.Student();
}
}
但是这样写很麻烦,所以java有了import关键字。我们可以把类的全类名写在import关键字后面,那就表示,如果在本来中使用到Student,那么就是com.itheima.damain包下的
import com.itheima.domain;
public class Test {
public static void main (String[] args) {
Student s = new Student();
}
}
(4)使用其他类的规则?
1、使用同一个包中的类时,不需要导包
2、使用java.lang包中的类时,不需要导包
3、其他情况都需要导包
4、如果同时使用两个包中的同类名,需要使用全类名
(5)小结
1、包的作用?
包就是文件夹,用来管理各种功能不同的Java文件
2、包名书写规则?
公司域名反写 + 包的作用,需要全部英文小写,见名只意
3、什么是全类名?
包名+ 类名
4、什么时候需要导包?什么时候不需要导包?
1、使用同一个包中的类时,不需要导包
2、使用java.lang包中的类时,不需要导包
3、其他情况都需要导包
4、如果同时使用两个包中的同类名,需要使用全类名
(6)final
final:最终的、不可被改变的
final修饰方法:表示该方法是最终方法,不能被重写
class Fu {
public void show() {
System.out.println("父类的show方法");
}
}
class Zi extends Fu {
@Override
public void show() {
System.out.println("子类的show方法");
}
}
// 上面这样写没问题
// 下面这样写子类里面编译报错
class Fu {
public final void show() {
System.out.println("父类的show方法");
}
}
class Zi extends Fu {
@Override
public void show() {
System.out.println("子类的show方法");
}
}
如果当前方法是一种规则,这个规则我不希望别人去改变,这个时候就可以用final修饰。比如在Object中就有方法是这么设计的,ctrl + n搜索Object,里面的getClass()方法就是final修饰的&