• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

lzsykal

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

20220727 第六组 张嘉源 学习笔记

代码块;静态;内部类;外部类;设计模式

代码块

类的内部结构:属性、方法、构造器、代码块、内部类

又叫初始化块,在Java中,使用{}括起来的代码被称为代码块,属于类的一个成员,将一些逻辑语句封装在方法体中

局部代码块:在方法中出现

实例代码块:在类中方法外出现,随着对象的创建而加载,创建一次对象构造代码块执行一次

{}

静态代码块:随着类的加载而加载,并且只执行一次,做一些初始化的工作

用static修饰,必须放在类下static{}

执行顺序

父类静态代码块 > 子类静态代码块 > main()方法 > 父类代码块 > 父类构造器 > 子类代码块 > 子类构造器

父类优于子类,静态优于其他

静态

static

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

静态修饰符

可以修饰属性、方法、内部类

变量

被static和final修饰过的实例常量,实例本身不能再改变了

被static修饰的变量叫静态变量(静态变量可以再静态语句块中初始化),没有被static修饰的变量叫实例变量

方法

静态方法可以直接通过类名调用(类名.静态方法名或类名.静态变量调用),任何的实例也都可以调用(实例方法中可以直接调用静态方法),因此静态方法中不能用this和super关键字

在静态方法中不可以直接调用实例方法(因为静态方法是属于类的,而实例方法是属于对象的,没有创建对象时也可以用静态方法,只有在实例化之后,静态方法才可以调用实例方法,实例化之后什么都可以调用)

静态结构是优先于对象就存在的

实例方法只能通过对象名.方法名调用

static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的

内部类

匿名内部类

本质是类,内部类,该类没有名字,同时还是一个对象

语法:new 类或接口 (参数列表){

类体

}

静态内部类

有static修饰

静态内部类不能直接访问外部类的非静态成员,但可以通过new 外部类().成员的方式访问

如果外部类的静态成员与内部类的静态成员相同, 可以通过"类名.静态成员"来访问外部类的静态成员;如果不同,可以直接调用外部类的静态成员名。

外部类

一般来说,外部类是定义在已设置主类的.java文件下的类。当在主类内部定义了一个内部类,主类成为了相对意义上的外部类。
设计模式

是人们为软件开发中抽象出可重复利用的解决方案
软件开发工程师之间沟通的“行话”

面向对象的设计原则

开闭原则

(Open Close Principle)对扩展开放,对修改关闭(继承,实现接口),可以通过“抽象约束,封装变化”来实现开闭原则
通过接口或者抽象类为软件定义一个相对稳定的抽象层
将相同的可变因素封装在相同的具体实现类中,派生一个实体类就可以了(就是继承或者实现)

里氏代换原则

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

依赖倒转原则

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

每个类尽量提供接口或抽象类,或者两者兼备
变量的声明尽量是接口或者是抽象类
任何类都不应该从具体类派生
在使用继承时要遵循里氏代换原则

接口隔离原则

使用多个隔离的接口

单例模式

一个类只能有一个实例(私有化构造器private Ch01)

饿汉式单例模式

不管以后会不会使用到该实例化对象,先创建了再说,很着急的样子
实现的办法就是直接new实例化

public class a{

public static a instance=new a();

private a(){

};

public static a getInstance(){

return instance;

}

}

懒汉式单例模式

(延迟加载)什么时候调用getInstance方法什么时候初始化(new)

public class b {

private static Singleton instance=null;

private Singleton(){

   };

public static Singleton getInstance()
{
if(instance==null)
{
instance=new Singleton();
}
return instance;
}

}

内部类实现单例

也是懒汉式的一种,这种懒汉式没有线程的问题,结合了饿汉式和懒汉式的优点

posted on 2022-07-27 22:44  林钟朔一  阅读(45)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3