面向对象、类关系、内部类、设计模式

1.类之间的关系
1.1继承
使用extends表示
类和类之间是单继承
接口和接口之间是多继承,多个用逗号隔开
1.2实现
类和接口之间是多实现,多个用逗号隔开
Class类名 implements 接口,接口…{}
类实现接口后,必须实现所有的抽象方法,否则该类需要加abstract修饰
1.3依赖
面向对象、类关系、内部类、设计模式
1.4 关联
面向对象、类关系、内部类、设计模式
1.5 聚合
整体和局部都有独立的生命周期
1.6 部分和整体不可分离
2.内部类
2.1概述
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类

在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者 称为外部类。
Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完 整的名称。
2.2 成员内部类

package OurterClass;
/** 

 * @author 王梓硕

 * @date :2022年1月13日 上午11:32:21 

 * 成员内部类,可以看做成员变量
 * 内部类优点:可以访问外部类的私有化属性

 */
public class OurterClass_01 {
   private static String s1="私有化静态变量";
   private String s2="私有化成员变量";	   
   //成员内部类
   //可以使用访问权限控制修饰符
   //在成员内部类中不能有静态声明
   //在成员内部类中,可以直接访问外部类所以属性
   //内部类类名 编译之后:外部类类名$内部类类名
   class InnerClass{
	 //在成员内部类中不能有静态声明
	 //  static int i=2;
	 //在成员内部类中,可以直接访问外部类所以属性
	   public void m1(){
		   System.out.println(s1);
		   System.out.println(s2);
	   }
   }
	public static void main(String args[]){
	   //1.创建外部类对象
		OurterClass_01 o=new OurterClass_01();
       //2.创建内部类对象
		InnerClass inner = o.new InnerClass();
		//3.访问属性
		inner.m1();
	}
   
}


2.3 静态内部类

package ClassRelation;
/** 

 * @author 王梓硕

 * @date :2022年1月13日 上午11:41:27 

 *静态内部类 可以看做静态变量
 *
 *在静态内部类中,可以声明成员属性也可以声明静态属性
 *
 *在静态内部类中,无法直接访问外部类的成员属性,需要创建外部类对象访问才行
 *

 */
public class OuterClass_02 {
     private static String s1="私有化静态变量";
     private String s2="私有化成员变量";
     //声明一个静态内部类
     static class InnerClass{
    	 public static void m1(){
    		 System.out.println(s1);
    		 //在静态内部类中,无法直接访问外部类的成员属性,需要创建外部类对象访问才行
    		// System.out.println(s2);
    	 }
    	 public void m2(){
    		 System.out.println(s1);
          //   System.out.println(s2);
    	 }
     }
     public static void main(String args[]){
    	 //调用m1
    	 OuterClass_02.InnerClass.m1();
    	 //当前类中类名可以省略
    	 InnerClass.m1();
    	 //创建静态内部类对象
    	 InnerClass inner= new OuterClass_02.InnerClass();
    	 //类名可以省略
    	 inner =new InnerClass();
    	 //调用m2
    	 inner.m2();
     }
}

2.4 局部内部类
面向对象、类关系、内部类、设计模式
面向对象、类关系、内部类、设计模式
面向对象、类关系、内部类、设计模式
2.5 匿名内部类

面向对象、类关系、内部类、设计模式
面向对象、类关系、内部类、设计模式
3.设计模式
3.1 概述
面向对象、类关系、内部类、设计模式
3.2饿汉模式
面向对象、类关系、内部类、设计模式
3.3懒汉模式

package _03_Singleton;
/** 

 * @author 王梓硕

 * @date :2022年1月13日 下午6:41:38 

 *  2 用到的时候,再创建对象,称为懒汉模式

 */
public class Singleton_02 {
	private static Singleton_02 s = null;

	public static Singleton_02 getInstance() {
		if (s == null) {
			s = new Singleton_02();
		}
		return s;
	}
}

上一篇:解决Vue3引入自定义组件报错Cannot find module ‘xxx‘ or its corresponding type declarations问题


下一篇:java 内部类和静态内部类的区别