封装
面向对象编程
- 封装
- 继承
- 多态
一、补充包(必须明白)
实际是将文件进行封装,进行分类,并且安全
包的名规则
- 公司名称 com.公司名.项目名称.模块名称
- 组织(个人) org. 组织(个人).项目名称.模块名称
例如: com.woniuxy.atm.user
注意:
1)java文件在包下,那么第一行代码必须package 所在包的全名;
2)导入包:使用别的包下的类 ,放置在class之前import 类全名;
3)Java中不需要导入的包为 java.lang.*
4)如果一个类以为名字和调用处的名字一样,以为就近原则无法引入该类,此时类型全名的方式去使用。尽量不要将class名取成一样的com.woniuxy.demo_4_11.test1.Test01.show();
二、一个类中有
属性
方法(构造,普通方法)
代码块----静态和非静态(理解)
一个类-----内部类(语法记住,有啥作用)
一个类先加载才能使用,使用静态成员或者创建对象
- 静态代码块是由上到下执行的,只在加载的时候执行一次,以后不会在执行了
2.非静态代码块是由上到下执行的,只在在创建对象时才调用,否则不会调用的。
内部类
- 静态的内部类,依赖于类存在,
创建该类对象时语法:外部类名.内部类名 对象名= new 外部类名.内部类名()
- 非静态的内部类 ,依赖于对象存在。
创建该内部类对象的语法
外部类名.内部类名 对象名= new 外部类名().new内部类名()
三、继承(面向对象编程)
为啥要用继承?
- 在同类的级别上再次进行抽取同的成员,形成一个新的类,这个代码量能以降低
- 子类继承了父类的非私有成员(属性—成员变量,方法)
- 子类可以比父类更具体(成员更多)
- 重写继承父类的方法
注意:
5)只有继承下来了,就可以调用?
6)super关键字:调用父类(非私有),属性,方法,构造方法
7)所以的类都有无参的构造方法,子类构造方法会默认调用父类的无参构造方法,调用构造方法必须在构造器的第一行
8)在继承中,实例化子类对象时,先去调用父类的构造器,然后再执行子类构造器中别的代码
9)一个构造器中只能调用一个构造器(他自己后者父类的)构造器只能在构造器中调用并且只能在代码的第一行。
9)子类能不能重写(先继承在重新编写)父类构造器,因为子类无法继承父类的构造器,更谈不上重新
面试?重写(继承关系中,子类)和重载(同一类)区别?
四、Object是所有类的祖先类
五、final
最终的
可以使用的地方:类上,变量上,方法上
类 |
最终的类,没有子类,别的类不能继承 |
方法 |
不能被重写 |
变量 |
该变量的值(栈中值)不能变的,称为常 |