1.1 包
包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。
在IDEA项目中,建包的操作如下:
名的命名规范:
路径名.路径名.xxx.xxx
// 例如:com.itheima.oa
-
包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。
-
包名必须用”.“连接。
-
包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。
1.2 导包
什么时候需要导包?
情况一:在使用Java中提供的非核心包中的类时
情况二:使用自己写的其他包中的类时
什么时候不需要导包?
情况一:在使用Java核心包(java.lang)中的类时
情况二:在使用自己写的同一个包中的类时
1.3 使用不同包下的相同类怎么办?
假设demo1和demo2中都有一个Student该如何使用?
代码示例:
//使用全类名的形式即可。
//全类名:包名 + 类名
//拷贝全类名的快捷键:选中类名crtl + shift + alt + c 或者用鼠标点copy,再点击copy Reference
com.itheima.homework.demo1.Student s1 = new com.itheima.homework.demo1.Student();
com.itheima.homework.demo2.Student s2 = new com.itheima.homework.demo2.Student();
2.1final关键字
学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。
如果有一个方法我不想别人去改写里面内容,该怎么办呢?
Java提供了
final
关键字,表示修饰的内容不可变。
final修饰方法
表明该方法是最终方法,不能被重写
final修饰类
表面该类是最终类,不能被继承
final修饰变量
叫做常量,只能被赋值一次
测试类
public class finaldemo01 { public static void main(String[] args) { /* final修饰方法 表明该方法是最终方法,不能被重写 final修饰类 表面该类是最终类,不能被继承 final修饰变量 叫做常量,只能被赋值一次 */ } }
父类
class Fu{
public final void show(){
System.out.println("父类的show方法");
}
}
子类
class zi extends Fu{
@Override
public void show() {
System.out.println("子类的show方法");//报错是因为父类加了final修饰,所以子类的show方法不能重写
}
}
public class Test { public static void main(String[] args) { final int a=10; a=30;//报错的原因,常量不能被赋值 } }
ublic class test {
/*
final修饰基本数据类型的时候,记录的值不能发生改变
final修饰引用数据类型的时候,记录的值不能发生改变,内部属性的值还是可以改变的
*/
public static void main(String[] args) {
final double pi = 3.14159265359;
//pi=6.1
Student S = new Student();
S.setAge(18);//记录的值不能发生改变,内部属性的值还是可以改变的
S.setName("zhangsan");
//S=new Student()
System.out.println(S.getAge()+" "+S.getName());
//数组
final int []arr={1,2,3,4,5};
arr[0]=111;
arr[1]=222;
arr[2]=333;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}