包的概述和使用

其实就是文件夹

作用:对类进行分类管理

包的定义格式

  • 格式:package 包名; (多级包用.分开)
  • 范例:package com.test;

带包的Java类编译和执行

  • 手动建包
  • 自动建包
    • javac-d.HelloWorld.java
    • `java com.test.HelloWorld

导包

导包的概述和使用

使用不同包下的类时,使用的时候写类的全路径,写起来太麻烦了,为了简化带包的操作,Java就提供了导包的功能

导包的格式

  • 格式:import 包名;
  • 范例:import test.Teacher;

修饰符

修饰符的分类

  • 权限修饰符
  • 状态修饰符

权限修饰符

修饰符 同一个类中 同一个包中
子类无关类
不同包的子类 不同包的无关类
private
默认
protected
public

状态修饰符

  • final(最终态)
  • static(静态)

final

final 关键字是最终的意思,可以修饰成员方法,成员变量,类

final 修饰的特点

  • 修饰方法:表明该方法是最终方法,不能被重写
  • 修饰变量:表明该方法时常量,不能再次被赋值
  • 修饰类:表明该类是最终类,不能被继承

final修饰局部变量

  • 变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
  • 变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的

static

static 关键字是静态的意思,可以修饰成员方法,成员变量

static 修饰的特点

  • 被类的所有对象共享
    • 这也是我们判断是否使用静态关键字的条件
  • 可以通过类名调用
    • 当然,也可以通过对象名调用
      ** 推荐使用类名调用**
案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

package unit_12xiushifu.test1;

/*学生类*/
public class Student {

public String name; //姓名
public int age; //年龄
// public String university; //学校
public static String university; //学校

public void show() {
System.out.println(name + "," + age + "," + university);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

package unit_12xiushifu.test1;

/*测试类*/
public class StaticDemo {
public static void main(String[] args) {

Student.university = "清华同方";

Student s1 = new Student();
s1.name = "舒鑫";
s1.age = 16;
// s1.university = "清华同方";
s1.show();

Student s2 = new Student();
s2.name = "李光辉";
s2.age = 16;
// s1.university = "清华同方";
s2.show();
}
}

static访问特点

非静态的成员访问

  • 能访问静态的成员变量
  • 能访问非静态的成员变量
  • 能访问静态的成员方法
  • 能访问非静态的成员方法

静态的成员方法

  • 能访问静态的成员变量
  • 能访问静态的成员方法

总结一句话就是:静态成员方法只能访问静态成员