day30:面向对象复习

本文介绍了Java中的面向对象编程概念,包括类和对象的定义,私有访问权限,构造方法,继承和抽象类的使用,接口的定义以及多态性。同时,提到了静态修饰符的作用,字符串的特点以及匿名内部类和静态代码块的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

相对于面向过程的一种编程思想 
面向过程:注重的是过程  需要亲历亲为
面向对象:注重的结果 注重的是具备功能的对象 
java的面向对象
将功能封装到类中,当想要使用这个功能时,不去考虑如何完成这个功能
而是考虑哪个类具备这个功能.创建这个类的对象 调用其功能.

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

什么是类?
        类是现实事物的描述,现实事物都具备属性和行为
        类的成员变量描述现实事物的属性
        类的成员方法描述现实事物的行为
什么是对象?
        根据类的描述创建出来的具体的实例
class Person{
   private String name;
   private int age;
   
   吃
   睡
}
Person p  = new Person();

3.private有什么作用?

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

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

this只能定义在方法中,this代表当前对象的引用.哪个对象调用了这个方法 this就代表哪个对象
    this也可以区分成员变量 和 局部变量
super代表子类对象中的父类空间

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

如果一个类中一个构造方法都没写,系统会默认提供一个空参数构造方法.
如果这个类写了任意一个构造方法,系统都不会提供空参构造方法了

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

1.当要定义一个类的时候 ,发现已有类与要定义的类相似,要定义的类属于已有类的一种,这时可以将要定义的类定义为已有类的子类
2.当多个类有共性内容,可以将共性内容向上抽取,形成一个新的类,新的类与多个类的关系叫做继承
public class 子类 extends 父类{
  
}

7.继承的主义事项?

1.java只支持单继承 ,不支持多继承,支持多层继承
2.所有的类都直接或者间接继承Object类
3.构造方法不能继承

8.抽象类如何产生的?

共性内容向向上抽取 ,只抽取方法的声明,不抽取方法的主体,因为有些方法的主体是确定不下来的
比如 图形类  一定会具有求周长 求面积的方法 但是具体怎么求周长 怎么求面积 不确定 
所以只有方法得声明 没有方法的主体 这样的方法就是抽象方法  有抽象方法的类就是抽象类

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

两种方式 
    1.子类也是一个抽象类
    2.将3个抽象方法都重写

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

public interface 接口名{
        抽象方法1;
        抽象方法2;
        ....
}
public class 类 implements 接口{
        重写方法
        
}

11.接口和抽象类区别?

成员的区别:
    构造方法:接口没有,抽象类有
    成员方法:接口只能是抽象的(JDK1.8才有默认和静态)
            抽象类可以是抽象的也可以是具体的
    成员变量:接口是常量,抽象类可以是常量也可以是变量
思想上的区别
    抽象了是定义了一类事物共性的内容
    接口是定义了额外的功能

12.多态在java中是如何体现的?

父类或接口引用指向了子类或实现类的对象

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

1.必须具有继承或者是实现关系
2.有方法重写(没有方法重写 没意义)
3.父类引用指向子类对象(格式)

14.多态后访问成员的特点

一切表现都是父类的表现 只有方法运行的是子类重写后的方法.
成员变量  编译看父类 运行看父类 
成员方法  编译看父类 运行看子类

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

多态本身就是向上转型 
        Fu fz = new Zi();
向下转型(强制类型转换)
        Fu fz = new Zi();
        Zi z = (Zi)fz;

16.static修饰符特点是什么?如何访问?内存中对象和静态成员谁先存在?

静态修饰符 可以修饰成员变量 成员方法 
    特点 
        被static修饰的成员属于类,不单属于某个对象,被所有对象所共享
    访问 
        类名.成员变量;
        类名.成员方法(实际参数);
    注意事项 
        static修饰的成员是随着类的加载而加载,优先于对象存在,
        所以静态只能直接访问静态,不可以使用this或者super.

17.访问权限修饰符有哪些?每种的权限?

public 公共的 任何包下都可以直接访问 可以修饰类 修饰成员变量 修饰成员方法
默认  包权限 只有当前包下可以直接访问  可以修饰类 修饰成员变量 成员方法
protected 受保护的  当前包下可以直接访问 其他包的子类可以访问  不能修饰类  可以修饰成员变量 成员方法
private 私有的  只有本类可以直接访问  不能修饰类 可以修饰成员变量 成员方法

18.private和abstract,final和abstract,static和abstract能一起使用?

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

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

局部内部类一种,没有类名内部类
    
    创建一个类子类对象的快捷方式
    格式 
    new 父类/接口(){
    重新方法();
    };
    根据这个格式得到的是一个类的子类 同时也是这个子类的对象

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

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

21.字符串什么特点?

所有字符串的字面值都是字符串的对象 "aaa"
常量 一旦创建不可改变
以为不能改变 所以可以共享

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

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

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

java.lang.StringBuilder  线程不安全 效率高
StringBuilder是拼接字符串的缓冲区,提高字符串拼接的效率,减少
字符串拼接时空间的浪费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值