oop(面向过程)考试复习

  1. 何为对象和类?

对象:世界万物皆为对象。

类:类是一个抽象的概念,仅仅只是一个模板。

类是对某一事物的描述是抽象的 对象是实际存在的该类事物

  1. OOP的三大原则?

封装(模块化和信息隐藏),继承,多态性。

  1. int的默认值是0?String的默认值是null?

  2. 访问修饰符的作用?并列举我们目前学过的修饰符并注明其中文释义? java语言通过访问修饰符来控制类以及类里面的属性和方法的被访问权限。

例子:public              公开的

  friendly                 默认/友好的 

  Private             私有的

  Protected       保护的

Public class  类名{

}

同类同包跨包  跨包继承

   Static        静态的

5、方法:飞机的黑匣子  飞机出事  工作人员 解析黑匣子里面的数据

  方法的用途:对对象的数据进行操作

1)、根据是否有返回值分为?

有返回值和无返回值 

区别:

无返回值的方法:语法上有void关键字,方法体内没有return;返回

有返回值的方法:语法上没有void关键字,方法体内有return,return后面接返回值,且返回值的类型必须和方法的返回类型保持一致。

2)、根据是否带参数分为?

有参数和无参数

3)、根据是否有static修饰符分为?

有static为静态的方法,可以直接通过类名调用,又称为“类方法”。

没有static为非静态的方法。

4)、方法内部能否调用方法?方法内部能否嵌套方法?

方法内部可以调用方法,但是不能嵌套方法。

6、toString方法:

1)、特点有哪些?

答案:系统自带的方法,有返回值且返回类型是String类型,无参数。

2)、快捷键是什么?

tos+alt+/

3)、如何调用toString方法?

直接打印对象名。

7、全局变量和局部变量:

1)、全局变量/成员变量/属性:

定义位置?调用范围?

定义位置:方法的外面,类的里面。

调用范围:该类里面的所有方法均可以调用。

java是否会给其初始值?

会,int类型默认值是0;String类型默认值是null。

Dog da; null

2)、局部变量:

定义位置?调用范围?

定义位置:方法的里面/代码块。

调用范围:只在本方法/代码块内调用。

java是否会给其初始值?

不会,必须手动赋初识值。

3)、在同一方法中是否可以有同名局部变量?

不可以。

4)、在同一类中是否可以有同名全局变量?

不可以。

8、静态、非静态:static

1)、何为静态的属性或者方法?

在变量或者方法前面加static,那么该变量或者方法就变成静态的变量或者方法。

2)、如何调用静态的属性或者方法?

静态的变量或者方法可以直接通过类名调用,静态的方法又称为“类方法”。

3)、静态属性的特点?

静态的变量在对象和对象之间是共享的

4)、静态的和非静态的在互相调用的时候应该注意什么?

静态的只能调用静态的,非静态的既可以调用静态的也可以调用非静态的。

9、封装属性:

1)、封装的步骤?

答案:

1:私有化所有属性。在属性前面加private (只能被该类自身所访问和修改)

2:公开所有属性的set和get方法

         2)、get方法和set方法的区别? 

                  get是有返回值无参数的方法,得到/获取属性的值,

set是无返回值有参数的方法。设置/修改属性的值

         3)、手动封装Dog类里面的name和age两个属性。

                  Dog:  public  void  setName(String Name){  

                      this.name=name;

  };

                          Public  String getName(){

return  name

};

                    Age:  public  void  setAge(int age){

                                      this.age = age;

};

                                   Public  int   getAge(){

return  age

};

10、构造函数/方法:

1)、构造函数的名字怎么命名?

       方法名就是类名。

2)、构造函数是否可以带参数?

     可以带参数,而且可以带多个参数。

3)、同一个类里面可以有多个构造函数吗?为什么?

      可以有多个构造函数,因为方法的重载。

4)、构造函数有没有返回值?

    无返回值。且语法上没有void关键字

5)、构造函数的作用?

    在实例化对象的时候,完成属性初始化工作。

6)java语言规定构造方法只能通过new自动调用

  1. 、写出Dog类(name和age两个属性)里面的三个构造函数(有参数和无参数)。

无参数:

public Dog(){

}

有参数: 

public Dog(String name){

this.name=name;

}

public Dog(int age){

this.age=age;

}

public Dog(String name,int age){

this.name=name;

this.age=age;

}

10、方法的重载:方法重载的特点?

同名不同参,方法名相同,不同参分为不同参数类型或者参数个数。

11、在什么情况下会出现空指针异常(Null Pointer Exception)?

调用一个为空/null的对象的属性或者方法,就会报空指针异常。

12、何为代码块?代码块在什么时候被执行?

在代码外面包裹花括号,即为代码块。

在实例化对象的时候自动调用代码块。

13、静态的代码块和非静态的代码块的区别?

1.在实例化对象的时候静态的代码比非静态的代码块块优先被调用;

2.静态的代码块在对象和对象之间是共享的,在实例化多个对象的时候只能被调用一次。

14、继承.

1)、关键字:extends;

2)、父类/超类/基类;子类/派生类;

3)、一个类只能继承一个父类,但是一个父类可以有多个子类。

4)、Object类是所有类的根/父类,任何类都直接或者间接的继承Object(对象)类。

5)、父类私有化的成员(属性和方法)和构造方法不可以继承,但是构造方法可以被调用。

6)、子类在实例化的时候默认优先调用父类无参的构造函数;

7)、子类通过super关键字调用父类的成员;

8)、访问修饰符:

9)java只支持单继承 不可多继承 但可以通过实现接口来达到多继承

    9)、方法的重写:子类重写对父类不满意的方法。

       方法名、参数列表、返回类型都不能改,修饰符可以改,但是只能改大不能改小。

15、抽象.

   1)、关键字:abstract 

2)、抽象类:在类的class关键字前面加abstract,该类就变为抽象类;

特点:

a.抽象类无法被实例化,可以被声明,当做一种数据类型来使用;

b.抽象类可以被继承,当做父类来使用;

c.抽象类可以使用里氏替换原则(用子类实例化的对象来覆盖父类声明的对象);

d.抽象类里面既可以写普通方法又可以写抽象方法;

    3)、抽象方法:在方法的返回类型前面加abstract关键字,该方法就变为抽象方法;

       特点:

  1. 抽象方法没有方法体(与返回值和参数无关),必须在子类中被重写除非子类也是抽象类;

4)、final:最终的

    a.在类前面加final关键字,该类变为最终的类,无法被继承,但是可以被实例化。

    b.在方法前面加final,则该方法无法在子类中被重写(与返回值和参数无关)。

    c.在变量前面加final,那么该变量就变为常量,必须要初始化值且值不能被修改,且命名全大写。

16、多态.

    1)、概念:同一种事务在不同的对象或者不同的环境下表现出不同的形态,就叫多态。

         2)、核心:把父类/父接口当做一种参数传到方法里面。

    3)、instanceof:用来判断一个对象是否属于某个类,也可以判断一个类是不是实现了某个接口。

Dog da = new Dog();

17、接口.

         1)、关键字:interface。

          2)、实现某个接口的关键字:implements(实现)

    2)、概念:接口其实是一个更加纯粹的抽象”类”。

    3)、特点:

       a.接口里面的方法是默认的公开的静态的抽象方法;

       b.接口里面的变量都是默认的静态的常量。

       c.接口无法被实例化,但是可以适用里氏替换原则。

       d.接口无法被类继承,但是可以被类实现implements,实现接口必须重写接口里面的所有抽象方法,除非该类是抽象类。

                  e.一个类可以同时实现多个接口。

                  f.一个类可以在继承别的类的同时也可以实现别的接口,但是继承类一定要在实现接口的前面(先继承后实现)。

                  g:接口不能实现接口,但是接口可以继承接口,而且可以继承多个接口。

18、异常.

       1)、异常体系结构:

try{

    放有可能出错的代码

}catch(异常类型 对象名){

    捕获异常

}finally{

    不管try里面的代码是否发生异常,始终都要执行的代码

   异常是程序错误或可能导致程序错误的不正常状态

}

    2)、throws:声明异常;

       throw:抛出异常。

    3)、常见的几种异常类型:

1. NullPointerException(空指针异常)

  • 产生原因:当程序试图访问一个null对象的成员变量或方法时,就会抛出该异常

  1. ArithmeticException(算术异常)

    • 产生原因:主要发生在进行非法算术运算的时候,最典型的是除数为零的情况。

  1. ArrayIndexOutOfBoundsException(数组越界异常)

    • 产生原因:访问数组元素时,使用的索引值超出了数组的有效范围。不管是正向越界(索引值过大)还是负向越界(索引值过小)都会引发此异常。

  1. StringIndexOutOfBoundsException(字符串越界异常)

    • 产生原因:类似于数组越界,在访问字符串的字符时,给定的索引超出了字符串的长度范围。

  1. ClassNotFoundException(类未找到异常)

    • 产生原因:程序试图加载一个类,但在类路径中找不到对应的类定义文件(.class文件)。常见于使用反射机制动态加载类的时候:

  6.  FileNotFoundException(文件未找到异常)

  • 产生原因:当尝试打开或访问一个不存在的文件时,会抛出该异常

  1. IOException(输入输出异常)

    • 产生原因:这是一个比较宽泛的异常,用于处理与输入输出操作相关的错误,FileNotFoundException 实际上是它的子类。比如读写文件时出现磁盘错误、网络连接中断导致无法读写数据流等情况,都会引发IOException。

  1. 抽象类与接口的区别?

  1. 抽象类里面既可以写抽象方法和普通方法,接口里面只能写抽象方法;

  2. 抽象类里面既可以定义变量和常量,接口里面只能定义常量;

  3. 抽象类可以被类继承,接口可以被类实现;

  4. 抽象类可以有构造器,接口不能有构造器;

  5. 抽象类用abstract class定义;接口用interface定义

  6. 抽象类不可以用来定义对象 但可以被继承

2、重载和重写的区别?

            重载发生在同一个类里面,同名(方法名)不同参(参数列表),返回类型可以相同也可以不同;

            重写发生在继承或者实现接口的关系下,方法名,参数,返回类型必须相同。.

3.变量名命名法则

a.以下划线,字母,美元符开头

b.后面跟下划线,字母,美元符以及数字

c.没有长度限制 (但也不能太长)

d.对大小写敏感(意思是大小写代表不同含义)

4.多分支语句

a.switch语句

5.Java虚拟机jvm的执行特点

异常处理,多线程,动态链接

6.Java语言的特点

分布式,安全性,面向对象

7.for循环的一般形式 for(初值,终值,增量)

初值和增量都是赋值语句,终值是条件判断语句

8.结构化程序设计所规定的三种基本控制结构是

顺序,选择,循环

9.while循环能实现的操作 for循环也能实现

10.集合没规定值时 给默认值

11.float类型 是浮点数 只能精确表示7位

  1. 整形数据类型中,需要内存空间最少的是bytee

  2. 长整形(long)转换为短整型(int)数据 要进行类型的强制转换

  3. 在java中 使用类的步骤包括三大步:

         1)定义类

         2)创建类的对象

         3)访问对象的属性和方法

15.package import class

16.在子类构造函数中内的什么位置可以对超类(父类)的构造函数方法(super())进行调用?

        答:子类构造函数的第一条语句处

17.在创建对象时必须先声明对象 为对象分配内存空间,对对象初始化,然后才能使用对象

18.在调用方法时 若要使方法改变实参的值 可以用对象作为参数

19.在什么时候可以获得默认的构造函数? 类中没有任何构造函数时

20.在java语言中 对象是最基本的元素

21.访问修饰符 private \protected\public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值