Java学习笔记:04面向对象-内部类_访问修饰符_final
04面向对象-内部类/访问修饰符/final
1.static的介绍
static:关键字,静态的
static的作用是用来修饰类中的成员
2.访问一个类中的某一个成员变量
方法一:
_1.创建对象
_2.通过对象调用成员变量
3.如果一个类的成员变量static修饰,那么想访问这个成员
直接通过类名.成员变量名
什么时候的成员变量需要static修饰?
_如果这个成员不属于某一个对象,而是属于所有对象共有的,那么需要加上static修饰
static修饰的成员变量/成员方法的使用
1.建议直接用类名调用
_类名.静态成员变量
_类名.静态成员方法(参数)
_也可以通过对象,不建议
非静态成员变量/成员方法需要创建对象来调用
final
final:最终的,中技的 黑客–>(红客,骇客) 黑鹰基地
final可以修饰: _类,成员变量,局部变量(基本类型,引用类型),成员方法
1.final修饰类(太监类):不能被继承,但是可以被做为其他的类的子类
2.final修饰成员变量:
2.1被final修饰的成员变量,必须在创建对象之前有确定的值
2.2被final修饰的成员变量,只能赋值一次
3.final修饰成员方法(最终的方法):
不能被子类重写
4.final修饰基本类型局部变量:
被final修饰的基本类型局部变量,只能被赋值一次
5.final修饰引用类型的局部变量:
被final修饰的引用类型局部变量只能赋值一次
但是引用类型所指向的对象中内容是可以改变
1.包本质是什么?
包的本质就是文件夹,在包名中是以.来区分上下级文件夹关系
2.为什么要用包?
分类管理文件
3.包的声明:
格式:package 包名
作用:只是 某个类 在哪个包下
包的声明必须与类实际位置保持一致
4.包的导入
用来告诉编译器,我们要使用的类在哪一个包下
5.全限定类型
格式:包名.类名
比如package Exercise.PackageDemo;
java中有四个权限修饰符
public:(公共)
protected:(受保护的)
default:(默认,不写就是default)
private:(私有的)
public protected 不写(default) private
如果一个成员只想在本类中使用 用private修饰***
如果一个成员只想在本类中和本包的其他类中使用 不写修饰
如果一个成员只想在本类中使用和本包中使用或者其他包的子类中使用 用protected修饰
如果一个成员想在所有类中都可以使用 用public修饰****
内部类:
根据内部类定义位置不同的分类:
a.成员内部类:定义类中方法外
在其他类中如何创建该类的对象
固定格式:
外部类名.内部类名 变量名 = new 外部类().new 内部类();
b.局部内部类:定义方法中
在其他类中,是无法使用
只能局部位置使用
匿名内部类:
是一种特殊语法,用来快速创建抽象类的子类对象
也可以快速创建接口的实现对象
a.作用:
快速创建 抽象类的子类对象,接口的实现类对象.
b.格式:
第一种:
new 抽象类(){
//重写抽象类中所有的方法
};
第二种
new 抽象类(){
//重写抽象类中所有的方法
}.重写后的方法();
第三种
接口类型 变量名 = new 接口(){
//重写接口中所有的方法
};
不用匿名内部类:
问题1:给你一个抽象类,要求创建该类的子类对象
分三步:1.创建子类,继承抽象方法
2.创协抽象类中的所有抽象方法
3.new 子类
类作为方法的参数或返回值
我们需要传递的或者返回的,应该该类的对象(不是该类,也不是别的类的对象)
静态代码块
代码块,在成员位置 使用大括号括起来的一堆代码
public class Person{
//静态代码块
static{
代码块
}
public void show(){ }
}
特点:
1.当我们使用到一个类时,那么这类中的静态代码块自动执行
2.只会执行一次,第一次使用该类,就立刻执行
3.在同一个类中,静态代码块的优先级很高,比构造方法优先,比main方法优先
4.作用:
用来初始化类中某些功能(mysql的数据库驱动的加载)
本文来自博客园,作者:千寻简,转载请注明原文链接:https://www.cnblogs.com/opxc/p/15970169.html