2.4 java基础 day05 单例模式 final 抽象 接口 枚举类 匿名类 bean规范 作用域 Object类

本文详细介绍了Java中的单例模式,final关键字的使用,包括变量、属性和方法的修饰,抽象类与抽象方法的概念,接口作为规则的定义,以及枚举类的特性。还探讨了匿名类的应用,Bean规范中的作用域,以及Object类的重要方法如toString()、hashCode()和equals()。
摘要由CSDN通过智能技术生成

       

目录

单列模式:

final:

抽象:

接口:

枚举类:

匿名类:

Bean规范(pojo)

作用域:

Object 类:


静态方法不可以访问成员属性,一个相对于类,一个相对于对象

单列模式:

JVM默认给类提供的构造方法,其实就是公共的,无参的构造方法

  1. 类的创建过程复杂
  2. 类的对象消耗资源
public class java03_danlimoshi {
    public static void main(String[] args) {
        User1 instance1=User1.getInstance();
        
        User1 instance2=User1.getInstance();
        
        System.out.println(instance1==instance2);
    }
}
class User1{
//    1创建类和构造方法(private)
    private  User1(){

    }

//    3创建私有 的静态属性
    private static User1 user1=null;

//    2创建静态方法,因为第一步是private 还是无法new一个对象 ,创建静态方法可以直接通过类调用,但无法解决资源消耗的问题
    public static User1 getInstance() {
//        return new User1();// 这是第二步的代码 还是无法解决资源消耗的问题

//        第三步 判断user1是否等于null,是就new 一个,不是就return 本身
        if (user1 == null) {
            user1 = new User1();
        }
        return user1;


    }
}

final:

Java中提供了一种语法,可以在数据初始化后不被修改,使用关键字final

1.final可以修饰变量:变量的值一旦初始化后无法修改

2.final可以修饰属性:那么JVM无法自动进行初始化,需要自己进行初始化, 属性值不能发生变化

                通过静态

3.一般将final修饰的变量称之为常量,或者叫不可变变量

4.final可以修饰方法,这个方法不能被子类重写

5.final可以修饰类,这样类就没有子类了

6.final不可以修饰构造方法

7.final可以修改方法的参数,一旦修饰,参数就无法修改。

public class Java20_Object {
    public static void main(String[] args) {

        // TODO 面向对象
        // Java中提供了一种语法,可以在数据初始化后不被修改,使用关键字final
        // final可以修饰变量:变量的值一旦初始化后无法修改
        // final可以修饰属性:那么JVM无法自动进行初始化,需要自己进行初始化, 属性值不能发生变化
        // 一般将final修饰的变量称之为常量,或者叫不可变变量
        // final可以修饰方法,这个方法不能被子类重写
        // final可以修饰类,这样类就没有子类了
        // final不可以修饰构造方法
        // final可以修改方法的参数,一旦修饰,参数就无法修改。
        final String name = "zhangsan";

        //name = "wangwu";

        //System.out.println(name);

        //User20 user = new User20("wangwu");
        User20 user = new User20();
        //user.name = "zhangsan";
        //System.out.println(user.name);

        //user.name = "lisi";
        //System.out.println(user.name);
    }

}
final class User20 {
    public User20() {

    }
//    public void test( final String name ) {
//        name = "lisi";
//    }
//    public final String name;
//    public User20(String name) {
//        this.name = name;
//    }
//    public final void test() {
//
//    }
}
//class Child20 extends User20 {
    public void test() {

    }
//}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值