miluframe({ /*个人链接地址*/ Youself:'https://www.cnblogs.com/miluluyo/', /*导航栏信息*/ custom:[{ name:'留言板', link:'https://www.cnblogs.com/miluluyo/p/11578505.html', istarget:false },{ name:'技能树', link:'https://miluluyo.github.io/', istarget:true }], /*自己的友链页面后缀*/ Friends_of_the:'p/11633791.html', /*自己的友链信息*/ resume:{ "name":"麋鹿鲁哟", "link":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg", "introduction":"大道至简,知易行难。" }, /*友链信息*/ unionbox:[{ "name":"麋鹿鲁哟", "introduction":"生活是没有标准答案的。", "url":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg" },{ "name":"麋鹿鲁哟的技能树", "introduction":"大道至简,知易行难。", "url":"https://miluluyo.github.io/", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg" }], /*点击页面时候的弹出文本显示*/ clicktext:new Array("ヾ(◍°∇°◍)ノ゙加油哟~ ——麋鹿鲁哟","生活是没有标准答案的。 ——麋鹿鲁哟"), /*github链接*/ githuburl:'https://github.com/miluluyo' })

2022 07 27 第三小组 陈迪 学习笔记

类的内部结构:

  • 属性、方法、构造器、代码块、内部类
  • 代码块:
  • 代码块又称为初始化块,属于类的一个成员,它是将一些逻辑语句封装在方法体中。
  • 通过一对{}包裹。代码块没有方法名,没有参数,没有返回值,只有方法体。
  • 它是不需要通过对象或类进行显式的调用,他会在类加载或者创建对象时主动的隐式调用。
  • (1)静态代码块
  • 一个类被加载时会被调用一次,做一些初始化的工作。
    *(2)实例代码块
  • 每次创建实例,都会被调用一次
  • 面试:静态块/实例块/构造器
  • 父类优于子类/静态块优于其它
  • 当没有继承关系时,静态块--实力块--构造器
  • 有继承关系时,父类静态块--子类静态块--父类实例块--父类构造器--子类实例块--子类构造器

static静态:

  • 属性,方法,代码块

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

  • static内存解析

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

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

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

  • 1、静态方法中不可以直接调用实例方法

  • 如果想用,对象.方法名

  • 2、实例方法中可以直接调用静态方法

  • 静态的结构的加载,随着类的加载而加载

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

  • 在java中调用实例方法,必须要有主体,方法不能直接调用

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

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

  • //接口中的常量默认public static final

  • //开发中,基本上默认常量声明都是public static final

    this和super

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

  • this和super。this.方法。super.方法

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

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

外部类:

  • 一个public声明的类,类名必须和.java的文件名相同。
  • 生成的.class文件是两个独立的.class
  • 外部类就是两个类
  • 开发中,尽量不要写外部类。

类的组成结构:

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

    内部类:

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

  • 链表、node类其实主要就是给superlinked。

  • 我们可以把node类定义在superlinked中

设计模式:

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

  • 软件开发工程师之间沟通的"行话"

  • 面向对象的设计原则。

  • 1、开闭原则(Open Close Principle)

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

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

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

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

  • 2、里氏代换原则

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

  • 3、依赖倒转原则

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

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

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

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

  • d、使用继承时,要遵循里氏代换原则。

  • 4、接口隔离原则

  • 使用多个隔离的接口。

  • 5、迪米特原则

  • 6、合成复用原则

  • 7、单一原则:一个类只做一件事

单例模式:

  • 一个类只有一个实例。

  • 思路:

  • 1、别人不能new,构造器私有化,不能在类的外部通过new去实例化。

  • 2、在该类内部产生一个唯一的实例对象,把它封装成static类型

  • 3.定义一个静态方法返回这个唯一的对象。

  • 饿汉式单例模式

  • 不管以后会不会使用到该实例化俺对象,先创建了再说。

  • 实现的办法就是直接new实例化

  • public class Ch03 {
        private static final Ch03 ch03=new Ch03();
    private Ch03(){}
        public static Ch03 getInstance(){
        return ch03;
        }
    }
    
  • 懒汉式(延迟加载)

  • 什么时候调用getInstance方法,什么时候new

  • 这种懒汉式在多线程环境中完全错误的,根本不能保证单例的状态。

  • 内部类实现单例

  • 也是懒汉式的一种,这种懒汉式没有线程的问题

  • 结合了懒汉式和饿汉式的优点

  • 只要不调用getInstance方法,

  • 内部类一旦被使用一次只会被初始化一次,以后一直用的是instance

  • public class Ch05 {
        //私有化构造器
        private static Ch05 getInstance(){
            return SingletonHolder.instance;
        }
        public static class SingletonHolder{
            private static final Ch05 instance=new Ch05();
        }
    }
    

箭头函数:JDK8的新特性

  • 函数式接口:如果一个接口只有一个抽象方法,这个接口就称为函数式接口。
  • 可以用注解@FunctionalInterface
  • 1.有参数有返回值
  • (i,j)——>
  • 2.有参数无返回值
  • (i,j)——>{方法体}
    这个结构可以分为三部分:
  • 1.小括号包裹形参,类型不要
  • 2.——>
  • 3.——>方法体
  • ()——>system.out.println("重写的show方法...")
  • 重写的方法体只有一句话时,可以这么写
  • test(()——>"你好");

心得体会:

今天学习了外部类,内部类,还有三种设计模式,老师讲的很好,但是我自己理解能力较差,因此不是很明白,做题正确率也不高,还需要多练习,多请教同学。

posted @   jinjidecainiao  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
@media only screen and (max-width: 767px){ #sidebar_search_box input[type=text]{width:calc(100% - 24px)} } L2Dwidget.init({ "model": { jsonPath: "https://unpkg.com/live2d-widget-model-hijiki/assets/hijiki.model.json", "scale": 1 }, "display": { "position": "left", "width": 100, "height": 200, "hOffset": 70, "vOffset": 0 }, "mobile": { "show": true, "scale": 0.5 }, "react": { "opacityDefault": 0.7, "opacityOnHover": 0.2 } }); window.onload = function(){ $("#live2dcanvas").attr("style","position: fixed; opacity: 0.7; left: 70px; bottom: 0px; z-index: 1; pointer-events: none;") } 参数说明 名称 类型 默认值/实例 描述Youself 字符串 https://www.cnblogs.com/miluluyo/ 个人博客园首链接 custom 数组 [{ name:'相册', link:'https://www.cnblogs.com/elkyo/gallery.html', istarget:false },{ name:'技能树', link:'https://miluluyo.github.io/', istarget:true },{ name:'留言板', link:'https://miluluyo.github.io/p/11578505.html', istarget:false }] 导航信息 name 导航名 link 导航链接 istarget true跳转到新页面上,false当前页面打开 Friends_of_the 字符串 11633791 友链文章的后缀名,若字符串为空则不显示友链 resume 对象 { "name":"麋鹿鲁哟", "link":"https://www.cnblogs.com/miluluyo/", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg", "introduction":"大道至简,知易行难。" } 自己的友链信息 name 导航名 link 导航链接 headurl 头像 introduction 语录 unionbox 数组 [{ "name":"麋鹿鲁哟", "introduction":"生活是没有标准答案的。", "url":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg" },{ "name":"麋鹿鲁哟的技能树", "introduction":"大道至简,知易行难。", "url":"https://miluluyo.github.io/", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg" }] 友链数组 name 昵称 introduction 标语 url 链接地址 headurl 头像地址 clicktext 新数组 new Array("ヾ(◍°∇°◍)ノ゙加油哟~ ——麋鹿鲁哟", "生活是没有标准答案的。 ——麋鹿鲁哟"), 点击页面时候的弹出显示 githuburl 字符串 https://github.com/miluluyo github链接
点击右上角即可分享
微信分享提示