2022-07-27第十组薛雯匀
1.今天上午学的内容感觉比较好理解,下午有点听不懂。
2.了解
Java学习笔记
类的内部结构:
属性,方法,构造器,代码块,内部类
代码块:
代码块又称为初始化块,属于类的一个成员,它是将逻辑语句封装在方法体中。
通过{}包裹起来,代码块是没有方法名,没有参数,没有返回值,只有一个类似方法体的东西。
它是不需要通过对象或类进行显示的调用,他会在类加载或者创建对象时主动的隐式调用。
- 静态代码块
一个类被加载时会被调用一次,做一些初始化工作。
- 实例代码块
每次创建实例都会被调用一次,用的少
面试题:
当没有继承关系时,就一个类,静态块----实例块-----构造器
当有继承关系时:父类静态块----子类静态块----父类实例块----父类构造器---子类实例块----子类构造器
父优于子,静态优于非静态
- static静态
属性,方法,代码块
用static修饰的结构,不属于任何一个对象
Static内存解析
- 静态的变量或者静态方法存在于方法区。静态结构不会被垃圾回收
- 不属于任何一个实例对象,只存在于方法区,调用静态结构,直接用类名.的方式即可。
实例方法和静态方法的互相调用:
- 在静态方法中不可以直接调用实例方法,如果想用那就必须对象.方法名
- 实例方法可以直接调用静态方法。
- 静态结构的加载,随着类的加载而加载的
- 非静态结构,随着对象的创建而加载
在Java中去调用实例方法必须要有主体。方法不是一等公民,不能直接调用。
静态方法无论在哪里都是类名.方法名的方式调用,同一个类的静态方法之间可以省略。
接口中的常量默认public static final
开放中基本上常量的的声明都是public static final
静态方法是没有重写这个概念的。
静态方法怎么用?
写工具类
写静态代码块
无论是this还是super,都不可以在静态结构中使用。
静态的结构是属于类的,静态结构是优先于对象存在的。
This和super,必须有对象才能出现,必须有实例。
外部类
一个public声明的类,类名必须和.java的文件名相同
外部类就是两个类
生成的.class文件是两个独立的.class
开发中,尽量不要写外部类
类的组成结构:
属性,方法,构造器,代码块,内部类
内部类:
在一个类内部进行其他类结构的嵌套操作
我们之前写过的链表,Node类其实主要就是给SuperLinked
我们可以把Node类定义在SuperLinked中
设计模式
设计模式是人们为软件开发中抽象出可重复利用的解决方案
软件开发工程师之间沟通的“行话“
面向对象的设计原则
- 开闭原则(Open Close Principle)
对扩展开放,对修改关闭。(继承,实现接口)
我们可以通过“抽象约束,封装变化”来实现开闭原则。
通过接口或者抽象类为软件定义一个相对稳定的抽象层
将相同的可变因素封装装在相同的具体实现类中。派生一个实体类就可以了。
- 里氏代换原则
子类继承父类时,除了添加新的方法完成新增的功能外,尽量不要重写父类方法,自己去写一个新的方法
- 依赖倒转
要面向接口编程,不要面向实现编程。
- 每个类尽量提供接口或抽象类,或者两者兼备
- 变量的声明尽量是接口或者是抽象类
- 任何类都不应该从具体的类派生
- 使用继承时要遵守里氏代换原则
- 接口隔离原则
使用多个隔离的接口。
- 5. 迪米特发法则
- 合成复用原则
- 单一原则:一个类只做一件事
浙公网安备 33010602011771号