文章目录
前言
 今天继续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。之后的学习内容将持续更新!!!









