2022-07-27 第四组 王佳齐 学习笔记

思维导图

 

 

类的内部结构

属性,方法,构造器,代码块,内部类

代码块:

又可以称为初始化块,属于类的一个成员,将一些逻辑语句封装在类似方法体的地方中

通过一对大括号包裹起来,代码块是没方法名、参数、返回值,只有类似方法体

它是不需要通过对象或类进行显示的调用,它会在类加载或者创建对象时

主动的隐式调用

 

1.静态代码块

一个类被加载时会被调用一次,做一些初始化的工作

static{}

什么叫做类被加载?

写出主方法的时候

2.实例代码块

每次创建实例(对象),都会被调用一次

一个类中可以有几个静态块?

多个,开发中一般只写一个

实例块也可以有多个

 

面试题

当没有继承关系时,就一个类,静态块->实力块->构造器当有继承关系时,父类静态块->子类静态块->父类实力块->父类构造器->子类实例块->子类构造器父优于子,静态优于实例

 

static 静态

修饰属性、方法、代码块

用static修饰的结构,不属于任何一个对象

static的内存解析

1.静态的变量或者静态方法存在于方法区,静态的结构不会被垃圾回收

2.不属于某一个实例对象,只存在于方法区,调用静态结构直接用类名.的结构即可

 

 

实例方法和静态方法的互相调用

在静态方法中可以直接调用实例方法吗?

不可以,如果想用必须对象.方法名

实例方法中可以直接待用静态方法吗?

可以

 

静态结构的加载时随着类的加载而加载

非静态的结构,随着对象的创建而加载

 

在Java中调用实例方法必须要有主体,方法不是一等公民,不能直接调用,在同一个类中省略

了this

静态方法无论在哪里都是类名.方法名调用,同一个类的静态方法之间相互调用省略类名

 

接口中的常量默认public static final

开发中,基本上常量的声明都是public static final

 

静态方法没有重写这个概念

 

 

this和super

无论是this还是super都不可以在静态结构中使用

this和superthis.方法,super.方法

静态结构是属于类的,静态结构是优先于对象存在的

this和super,必须有对象才能出现,必须有实例

静态和继承绝缘

 

外部类

一个public声明的类,类名必须和.java的文件名相同

生成的.class文件是两个独立的.class

外部类就是两个类

开发中尽量不要写外部类

 

内部类

在一个类的内部进行其他类结构的嵌套操作

我们之前写过的单向链表,Node类其实就是主要给SuperLinked类

我们可以把Node定义在SuperLinked类当中

 

类的组成结构

属性方法构造器代码块内部类

 

设计模式

是人们为软件开发中抽象出可以重复利用的解决方案

是我们软件开发工程师之间开发的行话

面向对象的设计原则:

1.开闭原则(Qpen Close Principle)

对扩展开放,对修改关闭(继承,实现接口)

我们可以通过“抽象约束,封装变化”来实现开闭原则

通过接口或者抽象类为软件定义一个相对稳定的抽象层。

将相同的可变因素封装在相同的具体实现类中,派生一个实体类就可以了

2.里氏代换原则:

在子类继承父类时除了添加新的方法完成新增功能外,尽量不要重写

3.依赖倒转原则

要面向接口编程,不要面向实现编程

a.每个类尽量提供接口或者抽象类,或者两者兼备

b.变量的类型声明尽量是接口或者抽象类

c.任何类都不应该从具体类派生

d.在使用继承时要遵循里氏代换原则

4.接口隔离原则:

使用多个隔离的接口

5.迪米特法则

6.合成复用原则

7.单一原则:

一个类只做一件事

 

箭头函数

1.有参数、返回值

如果方法体只是一句返回值

2.有参数无返回值

如果方法体只有一句话

3.无参数

()->方法体    

 

学习心得

今天学习了静态方法等知识,感觉今天的知识有点杂,细小的点很多。

posted @ 2022-07-27 20:58  Iamnotarapper  阅读(22)  评论(0)    收藏  举报
ヾ(≧O≦)〃嗷~