前言
今天继续Java面向对象的学习,了解java中四种访问控制符的权限范围,认识关键字static和final,学习它们的用法。
希望能对你的学习有所帮助!
提示:以下是本篇文章正文内容,Java系列学习将会持续更新
一、访问控制符
访问控制符 | 访问权限 | 本类 | 本包中的其它类 | 子类 | 其它包的类 |
---|---|---|---|---|---|
public | 公开的 | 1 | 1 | 1 | 1 |
protected | 保护的 | 1 | 1 | 1 | 0 |
默认(default) | 默认的 | 1 | 1 | 0 | 0 |
private | 私有的 | 1 | 0 | 0 | 0 |
要求大家掌握:
a.通常情况下,所有的成员变量都用private修饰,所有的成员方法都用public修饰。
b.public修饰的内容表示可以在任意位置进行访问;
c.private修饰的内容只能在本类的内部进行访问。
二、关键字static
(1)基本概念
通常情况下成员变量隶属于对象层级,每个对象都拥有自己独有的成员变量。当所有对象只需要一个公用的成员变量时,使用static关键字来修饰,将该成员变量由对象层级提升到类层级。
static关键字可以修饰成员变量和成员方法,需要调用时使用类名. 成员变量/成员方法的方式访问。
(2)使用方式
①静态变量只能在类中定义,不能在方法体中定义(Java方法体中不存在静态变量)
②当访问静态变量/方法时,使用类名.变量名/方法名的方式访问
③对于静态的成员方法来说,只能访问静态的成员,不能访问非静态的成员;(执行静态方法时候可以还没有创建对象,非静态成员隶属于对象层级)
④对于非静态的成员方法来说,既可以访问非静态的成员同时也可以访问静态的成员;(成员:成员变量+成员方法)
⑤只有被所有对象共享的内容才能用static修饰。static不能随便加。
⑥当类加载时,首先会优先加载static块中的内容。所以静态块中可以用来进行初始操作
(3)案例
public class Person {
//用static修饰成静态变量,让所有对象共用这一个计数器
public static int count;
public Person(){
Person.count ++;
}
public static void main(String[] args) {
//静态成员的调用
System.out.println(Person.count);
}
}
二、关键字final
(1)含义
final本意为"最终的",无法更改的。可以修饰类、成员方法以及成员变量
final修饰类 最终类 表示该类不能被继承
final修饰方法 最终方法 表示该方法不能被重写
final修饰变量 最终变量 必须指定初始值,且不能再改变(常量)
(2)使用方式
final关键字修饰类表示该类不能被继承;
- 比如说:java.lang.System/String类等;
- 通常用于防止滥用继承。
final关键字修饰成员方法表示该方法不能被重写;
- 如:java.text.SimpleDateFormat类中的format()方法
- 通常用于防止不经意间造成的重写。
final关键字修饰成员变量表示必须指定初始化而且不能更改。
- 如:java.lang.Thread类中的MAX_PRORITY
- 通常用于描述常量的数据。
补充:
在Java语言中很少单独使用static关键字和final关键字。但是经常使用 public static final 共同修饰成员变量来表示常量的概念,常量的命名规则是:所有字母都是大写,不同的单词之间使用下划线连接。
例如:
public static final double PI = 3.14;
(3)案例
①final用于修饰类
public final class 类名称 {
...
}
②final用于修饰成员方法
修饰符 final 返回值类型 方法名称(参数列表) {
方法体
}
③final用于修饰局部变量
//第一种基本数据类型情况下的格式
final 基本数据类型 数据名称 = 值;
//引用数据类型情况下的格式
final 类型 对象名 = new 类名();
//例如:final Student stu = new Student();
总结
提示:这里对文章进行总结:
以上就是今天的学习内容,本文是j继续Java面向对象的学习,了解了访问控制符的权限范围,学习关键字static和final。之后的学习内容将持续更新!!!