Java面向对象复习

1.什么是面向对象?java中的面向对象是如何体现的

面向对象是一种基于面向过程的编程思维
Java中面向对象的实现主要通过将功能封装于类中,当想要用到这个功能时不需要考虑如何完成该功能 而是考虑哪个类具备这个功能 创建这个类的对象 调用其功能

2.什么是类?什么是对象?

类:对现实事物的抽象描述 使用事物属性(封装为成员变量)和功能(封装为方法)来描述事物
对象:类的具体实例

3.private有什么作用?

访问权限修饰符 代表私有的
可以修饰成员变量\成员方法\构造方法
被private修饰的成员只能本类使用 外界无法直接访问

4.this关键字什么意思?super指的是什么?

this:只能在方法中使用 表示当前对象的引用 因此哪个对象调用了方法 this就代表哪个对象
super:代表子类对象的父类空间

5.为什么定义了一个类没写构造方法也可以创建对象?

因为Java会默认提供一个空参构造 但如果有任意一个构造方法 Java不会再提供默认构造方法.

6.什么是继承?继承的格式?

  • 当多个类具有相同的共性内容 将共享内容向上抽取 形成一个新的类 新的类和多个类之间的关系叫做继承
  • 继承的格式为:
public class 子类类名 extends 父类类名:

7.继承的主义事项?

  1. Java只支持单继承 不支持多继承 但可以多层继承
  2. 默认所有的类都直接或间接继承于Object类
  3. 构造方法不能继承

8.抽象类如何产生的?

共享内容向上抽取 只抽取方法声明 没有方法体

9.一个抽象类中有三个抽象方法,子类继承后如何能不报错?

  1. 子类需要将抽象类中的3个抽象方法全部重写
  2. 或者子类自己也可以作为抽象类

10.定义接口的的关键字是?实现接口的关键字是?
定义接口的关键词是 Interface

public interface 接口名{}

实现接口的关键词是 Implements

public class 实现类类名 implements 接口名{}

11.接口和抽象类区别?

抽象类和接口的区别

12.多态在java中是如何体现的?
一切父类/接口的引用都指向子类/实现类对象
父类类名/接口名 变量名 = new 子类/实现类();
编译时 看父类
运行时 方法看子类重写后的方法

13.多态的前提条件****

1.需要有继承/实现关系
2.子类/实现类需要有方法重写 否则多态无意义
3.父类引用指向子类对象

14.多态后访问成员的特点
一切的表现都是父类的表现 只有方法运行的是子类重写后的方法
成员变量 编译时看父类 运行时看父类
成员方法 编译时看父类 运行时看子类重写后的方法

15.什么是向上转型,什么是向下转型

向上转型(类似于基础数据类型的自动类型提升)(多态本身即为向上转型)
Fu fu = new Zi();
向下转型(类似于基本数据类型的强制类型转换)
Zi zi = (Zi)fz;

16.static修饰符特点是什么?如何访问?内存中对象和静态成员谁先存在?
static作为静态修饰符 可以修饰成员变量和成员方法
特点:被static修饰后的成员属于类 而不单属于某个对象 被所有成员共享
访问格式:

类名/接口名.成员变量名
类名/接口名.成员方法名(实际参数);

被static修饰的成员随着类的加载而加载 优于对象的存在 所以静态只能访问静态 不可以使用this、super。

17.访问权限修饰符有哪些?每种的权限?
访问权限修饰符包括public、默认(default)、protected和private。
public 公共的 任何包下都可以直接访问 可以修饰类 修饰成员变量 修饰成员方法
默认 包权限 只有当前包下可以直接访问 可以修饰类 修饰成员变量 成员方法
protected 受保护的 当前包下可以直接访问 其他包的子类可以访问 不能修饰类 可以修饰成员变量 成员方法
private 私有的 只有本类可以直接访问 不能修饰类 可以修饰成员变量 成员方法
权限修饰符比较

18.private和abstract,final和abstract,static和abstract能一起使用?
privtate和abstract
不能 因为私有子类看不到 而 abstract要求子类必须重写
final和abstract
不能 因为final要求子类不能重写 而abstract要求子类必须重写
static和 abstract
不能 因为静态内容可以直接使用类名调用 如果可以 那么抽象方法就可以直接用类名调用 没有意义

19.匿名内部类的作用?格式?

定义
没有类名 定义在方法中的局部内部类。
作用:
快速创建一个类,作为子类对象,方便访问。
定义格式:

//得到的是一个子类 同时也是这个子类的对象
new(){重写父类方法}

20.静态代码块什么时候执行?

静态代码块在类加载时执行一次 只执行一次
类什么时候加载呢?1.创建类的对象 2.创建子类对象 3.访问静态属性方法

21.字符串什么特点?

  1. 所有字符串的字面值都是字符串的对象 “aaa”
  2. 常量 一旦创建不可改变
  3. 因为不能改变 所以可以共享

22.字符串如何转换为字节数组和字符数组?

String s = "abc";
byte[] bytes = s.getBytes();
char[] chs = s.toCharArray();

23.StringBuilder有什么作用?是线程安全的吗?

  • 在java.lang包下 线程不安全 效率高
  • StringBuilder是拼接字符串的缓冲区,提高字符串拼接的效率,减少 字符串拼接时空间的浪费
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值