static关键字
-概述:
是一种修饰符,修饰成员变量/成员方法和代码块.
被static修饰的成员不属于对象属于类,被该类的所有对象共有
-成员变量分类:
静态成员变量或类变量
非静态成员变量或实例变量
静态成员变量与非静态成员变量区别?
(4不同)
-1.语法不同
-2.生命周期不同
-3.访问方式不同-类访问和对象访问
-4.数量不同-new一次和多次
static 修饰成员变量:
什么时候用;该成员变量被多个对象共享的时候
静态成员变量与非静态成员变量区别?
调用者不同,一个对象调用一个类和对象都可以调用(强烈要求类调用)
static 修饰成员方法:
什么时候用;eg工具类
注意:多态方法可以访问静态方法成员,静态不可以访问动态的,
且静态方法中无this或super>>this和super一定要有对象静态方法不一定用对象调用!!
final关键字
* final也是一个修饰符。
* final修饰基本数据类型的变量,该变量就成为了常量,其值就不能再修改。
* final修饰引用数据类型的变量, 该引用变量不能再指向其他对象,但可以改变当前指向变量的值。
* final修饰方法,该方法就不能再被子类重写了。
* final修饰类,该类不能被继承了。
包
* 包就是文件夹
* 包在文件系统中是以文件夹形式存在。
包的作用
* 解决类命名冲突的问题。
* 将功能相似或相同的类和接口组织在一起,方便类的查找和管理。
* 注册功能:com.itheima.registher
* 登录功能:com.itheima.login
包的定义格式
* package 包名1.包名2...包名n;
* 命名规范:一般包名是全部小写,一般是公司的域名倒着写
* 比如:itheima.com ==> com.itheima.login/register
* 比如:baidu.com ==> com.baidu.momo.
包的注意事
* 定义包的语句必须是类中的第一行有效语句。
类访问的注意事项:
* 如果不同包下有同名的类时,在一个类要同时使用这两个类,只能有一个类被导包。另一类只能使用类全名的方式访问。
四种访问权限修饰符
public:任意包下任意类都可以访问。
protected:子类或本包下的任意类都可以访问。
默认(包权限):只能是本包下任意类访问
private:只能本类中访问
小结
成员变量:private
成员方法:public
内部类
在一个类中或方法中定义的类就称为内部类
内部类的分类
* 成员内部类(了解)
* 局部内部类(了解)
* 匿名内部类(重点)
* 静态内部类(不讲)
成员内部类
* 位置:定义类中方法外,和成员变量同级别。
局部内部类
* 位置:定义在方法中,和局部变量同级别。
匿名内部类
* 位置:定义方法中,没有名字的局部内部类。 特殊的局部内部类
注意事项
* 局部内部类不能使用public,protected,private修饰符。
* 在JDK1.8(不包括1.8)前如果局部内部类的方法中使用到方法的局部变量时,该局部变量需要使用final修饰。
* JDK1.8后不强制使用final修饰,但是也不能在局部内部类的方法中对该局部变量进行修改。