太原理工大学机器人团队20天学习打卡day18
今天是学习java基础的最后一天,比计划中少用了两天,由于我是因为兴趣才学java的,目前还不打算往这方面发展,所以学完java基础也不会深入下去了,我打算明天回顾一下这18天所学的内容,并且开始新项目的学习,感谢视频老师的讲解以及大家的陪伴哟
今天学习的内容是final关键字、package和import以及访问控制权限
1、final关键字
①基础语法
-
final表示最终的,不可变的
-
final修饰的类无法被继承
-
final修饰的方法无法被覆盖
-
final修饰的变量一旦赋值之后不可重新赋值
-
final修饰的实例变量必须手动赋值,不能采用系统默认值
public class FinalTest02 {
//成员变量之实例变量
//实例变量有默认值+final修饰的变量一旦赋值不能重复赋值
//综合考虑,java语言规定实例变量使用final修饰之后,必须手动赋值,不能采用系统默认值。
//编译错误
//final int age;
//第一种解决方案
final int age = 10;
//第二种解决方案
final int num;
public FinalTest02(){
this.num = 200;
}
//以上的两种解决方式本质上就是一种方式,都是在构造方法执行过程中给实例变量赋值。
public static void main(String[] args) {
}
}
- final修饰的引用
public class FinalTest03 {
public static void main(String[] args) {
//创建用户对象
User u = new User(100);
//又创建了一个新的User对象
//程序执行到此处表示以上对象已变成垃圾数据,等待垃圾处理器回收
u = new User(200);
//创建用户对象
final User user = new User(30);
//user = new User(50);
//final修饰的引用一旦指向某个对象之后,不能再指向其他对象,那么被指向的对象无法被垃圾回收器回收
user.id = 50;
//final修饰的引用虽然指向某个对象之后不能再指向其他对象,但是所指向的对象内部的内存是可以被修改的
}
}
②常量
- final修饰的实例变量是不可变的,这种变量一般和static联合使用,被称为常量
- 常量的定义语法格式:
public static final 类型 常量名 = 值;
- java规范中要求所有常量的名字全部大写,每个单词之间使用下划线连接
2、package和import
①java语言中的包机制
- 包又称为package,java中引入package这种语法机制主要是为了方便程序的管理。不同功能的类被分门别类放到不同的软件包当中,查找比较方便,管理比较方便,易维护
怎么定义包
- 在java源程序第一行上编写package语句
- package只能编写一个语句
- 语法结构:
package 包名;
包的命名规范
-
公司域名倒序 + 项目名 + 模块名 + 功能名
-
采用这种方式重名的几率较低
-
包名也是标识符,必须遵守标识符的命名规范,全部小写
-
一个包对应一个目录。
使用package之后怎么编译呢?怎么运行呢?
- 使用package机制之后,类名变成了包名+类名
例如:类名是cn.tyut.test.Test01
package cn.tyut.test;
public class Test01
{
public static void main(String[] args){
System.out.println("Test01's main method executeZ!");
}
}
-
编译:javac java源文件路径(在硬盘上生成一个class文件:Test01.class)
-
手动创建目录,将Test01.class文件放到指定目录下
-
运行:java cn.tyut.test.Test01
②import
当两个类不在同一个包中,类名前的包名不能省略,会显得很麻烦
import语句用来导如其他类,同一个包下的类不需要导入,不在同一个包下需要手动导入。
语法格式
import 类名;
import 包名.*;
import语句需要编写在package语句之后,class语句之前
**java.lang.***不需要手动引入,系统自动引入
3、访问控制权限
- 访问控制权限修饰符来控制元素的访问范围
- 访问控制权限修饰符包括
- public 表示公开的,在任何位置都可以访问
- protected 同包,子类
- 缺省 同包
- private 表示私有的
- 访问控制权限可以修饰类,变量,方法
- 当某个数据只希望子类使用,使用protected进行修饰
- 修饰符的范围
- private < 缺省 <protected < public
- 类只能采用public和缺省的修饰符进行修饰。【内部类除外】