ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-07-27 22:35:35  阅读:162  来源: 互联网

标签:27 静态方法 07 静态 调用 陈迪 实例 static 方法


类的内部结构:

  • 属性、方法、构造器、代码块、内部类
  • 代码块:
  • 代码块又称为初始化块,属于类的一个成员,它是将一些逻辑语句封装在方法体中。
  • 通过一对{}包裹。代码块没有方法名,没有参数,没有返回值,只有方法体。
  • 它是不需要通过对象或类进行显式的调用,他会在类加载或者创建对象时主动的隐式调用。
  • (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)——>{return i+j;}
  • 2.有参数无返回值
  • (i,j)——>{方法体}
    这个结构可以分为三部分:
  • 1.小括号包裹形参,类型不要
  • 2.——>
  • 3.——>方法体
  • ()——>system.out.println("重写的show方法...")
  • 重写的方法体只有一句话时,可以这么写
  • test(()——>"你好");

心得体会:

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

标签:27,静态方法,07,静态,调用,陈迪,实例,static,方法
来源: https://www.cnblogs.com/cd01106118/p/16526753.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有