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是拼接字符串的缓冲区,提高字符串拼接的效率,减少 字符串拼接时空间的浪费