Java学习09

如何实现向下转型

  1. 为什么要向下转型:为了使用子类的属性和方法
  2. 向下转型的方法:使用强转符:()–>可能出现ClassException异常–>使用instanceof在进行向下转型前判断
    if (对象名 instanceof 类名){
    类名 新对象=(对象)老类名;
    }
  3. ==和equals()有何和区别?
    ==: 用来比较基本数据类型
    equals() 用来比较引用数据类型
    在这里插入图片描述
  4. 八种基本数据类型及其对相应的包装类
    int Integer
    char Character
  5. 基本数据类型、包装类与String三者之间的转换
    基本数据类型和包装类之间
    自动装箱、自动拆箱;Integer i =10;
    基本数据类型、包装类—>String :使用String类的valueOf()
    String—>基本数据类型、包装类:parseXXX(String s)

谈谈你对多态性的理解

  1. 实现代码的通用性
  2. Object类中定义的public boolean equals (Object obj) {}
  3. 抽象类、接口的使用肯定体现了多态性(抽象类、接口不能实例化对象)

static关键字
在这里插入图片描述0
在这里插入图片描述

单例设计模式

  1. 什么是单例模式:一个类下面只能创建一个对象

  2. 怎样实现单例:
    1)饿汉式:new,一上来就造好一个对象
    2)懒汉式:null,用的时候再造一个对象

  3. 区分饿汉式和懒汉式
    饿汗式:
    坏处,对象加载时间过长
    好处,线程安全
    懒汉式:
    好处,延迟对象的创建
    坏处,目前写法,线程不安全

  4. 单例模式的优点:只生成一个实例,减小开销

在这里插入图片描述

理解main()方法

  1. mian() 方法是程序得入口
  2. main() 方法也是一个普通的静态方法
  3. main() 方法可以作为我们与控制台交互的一种方式。(Scanner也可以)

代码块
(初始化块)

  1. 代码块的作用:用来初始化类、对象,执行一些操作
  2. 只能使用static修饰代码块
  3. 静态代码块
    1)内部可以有输出语句
    2)静态代码块随着类的加载而执行,自动执行
    3)只执行一次,类加载的那一次
    4)作用:初始化类的属性
    5)如果一个类中定义多个静态代码块,执行顺序按代码顺序的先后执行
    6)静态代码块先于非静态代码块先执行
    7)静态代码块内只能调用静态属性或方法,不能调用非静态
  4. 非静态代码块
    1)内部可以有输出语句
    2)非静态代码块随着对象的创建而执行
    3)每创建一个对象就执行一次
    4)作用:可以在创建对象时,对对象的属性等进行初始化
    5)如果一个类中定义多个代码块,执行顺序按代码顺序的先后执行
    6)非静态代码块可以调用静态属性或方法,也可以调用非静态的属性或方法
    在这里插入图片描述

final关键字

  1. final可以用来修饰的结构:类、方法、变量
  2. final可以修饰一个类–太监类,final修饰的类不能被继承,如String,System类
  3. final修饰方法,表明此方法不可以被重写,比如Object类中的gatClass()方法
  4. final用来修饰变量,此时变量相当于常量
    1)final修饰属性,可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
    2)final修饰局部变量,特别是final修饰形参时,表明此形参是一个常量,该形参只能在方法体内使用,而不能被赋值。
  5. static final可以修饰属性:全局常量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值