标签:27 07 class single 实例 static 2022 new public
今日学习情况:掌握
心情:80%
Java基础
代码块、Static关键字
代码块:初始化块,将逻辑语句封装在{},不需要通过对象和类显示的调用他会在类加载或创建对象主动隐式的调用
1)静态代码块,类被加载时调用,做一些初始化的工作
2)实例代码块,创建实例时被调用
没继承关系时:静态块-》实例块=》构造器,有继承关系时:父类静态=》子类静态=》父类实例快=》父类构造器=》子类实例=》子类构造器。
static:修饰:属性 方法 代码块、静态变量和方法存在于方法区,不会被回收。Java调用实例方法必须有对象接口中 默认有 public static final而静态方法没有重写的概念所以this 和 super 不能用于 static 修饰的地方使用,因为super\this必须依赖实例。
public class Java01 {
static {
System.out.println("**");
}
//实例代码块
{
System.out.println("/878/");
}
public static void main(String[] args) {
//Java01 java01 = new Java01();
A a= new A();
A.B b = new A().new B();//实例内部类B
A.C c = new A.C();//静态内部类C
}
}
class A extends Java01{
{
System.out.println("666");
}
static {
A a = new A();
System.out.println("fzi类静态");
Java01 java01 = new Java01();
String[] arr = new String[888];
Java01.main(arr);
}
class B extends A{
class AA{
}
}
static class C{}
}
外部类、内部类
外部类是指在一个Java文件中除public修饰的类的其他类,public声明的类名必须于.java文件名相同。一个Java文件中可以建立多个外部类。
内部类是指1定义在类内部的一个类B b = new A().new B();//实例内部类B
,这就是内部类实例的方法。上面代码中就具有一个外部类,外部类的里面还有一个内部类。
箭头函数
函数式接口:若一个接口只有一个抽象方法,就叫做函数式接口注解 @FunctionalInterface
箭头函数:
有参数,有返回值:
(i,j) -> {return i + j;}
有参数,无返回值
(i,j) -> {///////}
无参数() -> {*****}
只有一句是可以取消{}
public static void main(String[] args) {
//Inter in = new Interface();
show(()-> "666");//不写return
}
public static void show(Inter inter){
inter.add();
}
}
@FunctionalInterface
interface Inter{
String add();
}
单例设计模式
单例设计模式,一个类只有一个设计模式
1.别人不能new,-----构造方法私有化
2.类内产生一个唯一的实例化对象,封装成static
3.定义一个static静态方法返回这俄格唯一的对象
public class SingletonDesignPatter1 {
//饿汉式,不管会不会使用到,都会先创建,实现办法直接new
private SingletonDesignPatter1(){}
private static final SingletonDesignPatter1 single = new SingletonDesignPatter1();
public static SingletonDesignPatter1 getSingle() {
return single;
}
}
/*
懒汉式 (在多线程时是完全错误的)
什么时候用什么时候new
*/
class SingletonDesignPatter2{
//不赋值
private static SingletonDesignPatter2 single;
private SingletonDesignPatter2(){}
public static SingletonDesignPatter2 getSingle() {
if(single == null)
single = new SingletonDesignPatter2();
return single;
}
}
/*
内部类实现,也是懒汉式的一种,不会存在线程问题
*/
class SingletonDesignPatter3{
private SingletonDesignPatter3(){}
public static SingletonDesignPatter3 getSingle() {
return Single.single;
}
private static class Single{
private static final SingletonDesignPatter3 single = new SingletonDesignPatter3();
}
}
标签:27,07,class,single,实例,static,2022,new,public 来源: https://www.cnblogs.com/wubishurufa/p/16525772.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。