Fork me on GitHub

Java复习第三天

Day06

1、二维数组定义格式?

(1)元素是一维数组的数组。

(2)格式:

     A:数据类型[][] 数组名 = new 数据类型[m][n];

     B:数据类型[][] 数组名 = new 数据类型[m][];

     C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};

     D:数据类型[][] 数组名 = {{...},{...},{...}};

------------------------------------------------------------------

2、思考题

参数传递问题

     Java中只有值传递。

     基本类型:形式参数的改变不影响实际参数

     引用类型:形式参数的改变直接影响实际参数

------------------------------------------------------------------

3、面向对象思想概述

(1)面向对象

     面向对象是基于面向过程的编程思想

(2)面向对象的思想特点

     A:是一种更符合我们思考习惯的思想

     B:把复杂的事情简单化

     C:让我们从执行者变成了指挥者

------------------------------------------------------------------

 

4、类与对象分别是什么,举例说明

A:现实世界的事物

     属性 事物的基本描述

     行为 事物的功能

B:Java语言中最基本的单位是类。所以,我们要用类来体现事物

C:类

     成员变量  事物属性

     成员方法  事物行为

D:类:是一组相关的属性和行为的集合。是一个抽象的概念。

     对象:是该类事物的具体存在,是一个具体的实例。(对象)    

举例:学生:类    班长:对象

------------------------------------------------------------------

5、如何定义一个类,类的组成

     成员变量  定义格式和以前一样,就是位置不同,在类中,方法外。

     成员方法  定义格式和以前一样,就是去掉了static。

------------------------------------------------------------------

6、如何使用一个类的成员

     a:创建对象? 格式 类名 对象名 =  new 类名();

     b:如何使用成员变量和成员方法呢

          对象名.成员变量

          对象名.成员方法()

------------------------------------------------------------------

Day07

1、局部变量和成员变量的区别?

(1)在类中的位置不同

     成员变量:类中方法外

     局部变量:方法定义中或者方法声明上

(2)在内存中的位置不同

     成员变量:在堆中

     局部变量:在栈中

(3)生命周期不同

     成员变量:随着对象的创建而存在,随着对象的消失而消失

     局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

(4)初始化值不同

     成员变量:有默认值

     局部变量:没有默认值,必须定义,赋值,然后才能使用

------------------------------------------------------------------

2、匿名对象是什么?应用场景是什么?

(1)没有名字的对象

(2)应用场景

     A:调用方法,仅仅只调用一次的时候。

     b:可以作为实际参数传递。

------------------------------------------------------------------

3、封装是什么?java中封装的体现有哪些?请举例说明。

(1)隐藏实现细节,提供公共的访问方式

(2)好处:

     A:隐藏实现细节,提供公共的访问方式

     B:提高代码的复用性

     C:提高代码的安全性

(3)设计原则

     把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式

(4)private是封装的一种体现。

     封装:类,方法,private修饰成员变量

------------------------------------------------------------------

4、private关键字是什么? private关键字的应用场景?

(1)私有的意义,可以修饰成员变量和成员方法

(2)特点:

     被private修饰的后的成员只能在本类中被访问

(3)private的应用:

     以后再写一个类的时候:

          把所有的成员变量给private了

          提供对应的getXxx()/setXxx()方法

------------------------------------------------------------------

5、this关键字是什么?this关键字的应用场景?

(1)代表当前类的引用对象

     记住:哪个对象调用方法,该方法内部的this就代表那个对象

(2)this的应用场景:

     A:解决了局部变量隐藏成员变量的问题

     B:其实this还有其他的应用,明天讲解。

------------------------------------------------------------------

6、构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项是什么?构造方法中可不可以写return语句呢?

(1)作用:用于对对象的数据进行初始化

(2)格式:

     A:方法名和类名相同

     B:没有返回值类型,连void都不能有

     C:没有返回值

(3)构造方法的注意事项

     A:如果我们没写构造方法,系统将提供一个默认的无参构造方法

     B:如果我们给出了构造方法,系统将不再提供默认构造方法

          如果这个时候,我们要使用无参构造方法,就必须自己给出。

          推荐:永远手动自己给出无参构造方法。

(4)构造方法中可不可以有return语句

     可以。而是我们写成这个样子就OK了:return;

     其实,在任何的void类型的方法的最后你都可以写上:return;

------------------------------------------------------------------

7、给成员变量赋值有几种方式?

     A:setXxx()

     B:带参构造方法

------------------------------------------------------------------

8、一个类的成员变量初始化过程

Student s = new Student();

(1)把Student.class文件加载到内存

(2)在栈内存为s开辟空间

(3)在堆内存为学生对象申请空间

(4)给学生的成员变量进行默认初始化。null,0

(5)给学生的成员变量进行显示初始化。林青霞,27

(6)通过构造方法给成员变量进行初始化。刘意,30

(7)对象构造完毕,把地址赋值给s变量

------------------------------------------------------------------

9、static关键字是什么?有什么特点?什么时候用呢?

(1)静态的意思。可以修饰成员变量和成员方法。

(2)静态的特点:

     A:随着类的加载而加载

     B:优先与对象存在

     C:被类的所有对象共享

          这其实也是我们判断该不该使用静态的依据。

          举例:饮水机和水杯的问题思考

     D:可以通过类名调用

          既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。

(3)静态的注意事项;

     A:在静态方法中没有this对象

     B:静态只能访问静态(代码测试过)

(4)静态变量和成员变量的区别

     A:所属不同

          静态变量:属于类,类变量

          成员变量:属于对象,对象变量,实例变量

     B:内存位置不同

          静态变量:方法区的静态区

          成员变量:堆内存

     C:生命周期不同

          静态变量:静态变量是随着类的加载而加载,随着类的消失而消失

          成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

     D:调用不同

          静态变量:可以通过对象名调用,也可以通过类名调用

          成员变量:只能通过对象名调用

------------------------------------------------------------------

10、main方法各种修饰符及参数的解释?

    public:权限最大

     static:不用创建对象调用

     void:返回值给jvm没有意义

     main:就是一个常见的名称。

     String[] args:可以接收数据,提供程序的灵活性

------------------------------------------------------------------

Day08

1、代码块是什么?代码块的分类和各自特点?

(1)用{}括起来的代码。

(2)分类:

     A:局部代码块:用于限定变量的生命周期,及早释放,提高内存利用率。

   B:构造代码块:把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。

     C:静态代码块:对类的数据进行初始化,仅仅只执行一次。

(3)静态代码块,构造代码块,构造方法的顺序问题?

     静态代码块 > 构造代码块 > 构造方法

------------------------------------------------------------------

2、继承概述

把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容。这个关系叫继承。

------------------------------------------------------------------

3、继承的好处与弊端

(1)继承的好处:

     A:提高了代码的复用性

     B:提高了代码的维护性

     C:让类与类产生了一个关系,是多态的前提

(2)继承的弊端:

     A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。

          原则:低耦合,高内聚。

          耦合:类与类的关系

          内聚:自己完成某件事情的能力

     B:打破了封装性

------------------------------------------------------------------

4、Java中继承的特点

     A:Java中类只支持单继承

     B:Java中可以多层(重)继承(继承体系)

------------------------------------------------------------------

5、Java中继承的注意事项

     A:子类不能继承父类的私有成员

     B:子类不能继承父类的构造方法,但是可以通过super去访问

     C:不要为了部分功能而去继承

------------------------------------------------------------------

6、继承中的成员访问特点

     A:成员变量

          在子类方法中访问一个变量

     B:成员方法

          在测试类中通过子类对象去访问一个方法

------------------------------------------------------------------

8、继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?

     a:子类的构造方法默认会去访问父类的无参构造方法

          是为了子类访问父类数据的初始化

     b:父类中如果没有无参构造方法,怎么办?

          子类通过super去明确调用带参构造

          子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造

          让父类提供无参构造

------------------------------------------------------------------

Day09

1、final关键字可以干什么?有什么特点?

(1)是最终的意思,可以修饰类,方法,变量。

(2)特点:

     A:它修饰的类,不能被继承。

     B:它修饰的方法,不能被重写。

     C:它修饰的变量,是一个常量。

------------------------------------------------------------------

2、final关键字的面试题?

A:修饰局部变量

B:初始化时机

     a:只能初始化一次。

     b:常见的给值

          定义的时候。(推荐)

          构造方法中。

------------------------------------------------------------------

3、多态是什么,前提是什么?

(1)同一个对象在不同时刻体现出来的不同状态。

(2)多态的前提:

     A:有继承或者实现关系。

     B:有方法重写。

     C:有父类或者父接口引用指向子类对象。

------------------------------------------------------------------

4、多态中成员访问的特点?

     A:成员变量

          编译看左边,运行看左边

     B:构造方法

          子类的构造都会默认访问父类构造

     C:成员方法

          编译看左边,运行看右边

     D:静态方法

          编译看左边,运行看左边

------------------------------------------------------------------

5、多态的好处及弊端?如何解决多态的弊端?

(1)多态的好处:

     A:提高代码的维护性(继承体现)

     B:提高代码的扩展性(多态体现)

(2)多态的弊端:

     父不能使用子的特有功能。

         

现象:

     子可以当作父使用,父不能当作子使用。

------------------------------------------------------------------

6、多态中的转型

     A:向上转型:从子到父

     B:向下转型:从父到子

------------------------------------------------------------------

7、抽象类概述及其特点?

(1)一个没有具体的方法体的方法是抽象的方法。在一个类中如果有抽象方法,该类必须定义为抽象类。

(2)抽象类的特点

     A:抽象类和抽象方法必须用关键字abstract修饰

     B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类

     C:抽象类不能实例化

     D:抽象类的子类

          a:是一个抽象类。

          b:是一个具体类。这个类必须重写抽象类中的所有抽象方法。

------------------------------------------------------------------

8、抽象类成员特点?

     A:成员变量-->有变量,有常量

     B:构造方法-->有构造方法

     C:成员方法-->有抽象,有非抽象

------------------------------------------------------------------

9、抽象类的小问题

     A:抽象类有构造方法,不能实例化,那么构造方法有什么用?

          用于子类访问父类数据的初始化

     B:一个类如果没有抽象方法,却定义为了抽象类,有什么用?

          为了不让创建对象

     C:abstract不能和哪些关键字共存

          a:final   冲突

          b:private 冲突

          c:static 无意义

------------------------------------------------------------------

10、接口的概述及其特点?

 (2)接口的特点:

     A:接口用关键字interface修饰

          interface 接口名 {}

     B:类实现接口用implements修饰

          class 类名 implements 接口名 {}

     C:接口不能实例化

     D:接口的实现类

          a:是一个抽象类。

          b:是一个具体类,这个类必须重写接口中的所有抽象方法。

------------------------------------------------------------------

11、接口的成员特点?

     A:成员变量

          只能是常量

          默认修饰符:public static final

     B:构造方法

          没有构造方法

     C:成员方法

          只能是抽象的

          默认修饰符:public abstract

------------------------------------------------------------------

Day10

1、形式参数和返回值问题

(1)形式参数:

     类名:需要该类的对象

     抽象类名:需要该类的子类对象

     接口名:需要该接口的实现类对象

(2)返回值类型:

     类名:返回的是该类的对象

     抽象类名:返回的是该类的子类对象

     接口名:返回的是该接口的实现类的对象

(3)链式编程

     对象.方法1().方法2().......方法n();

     在方法1()调用完毕后,应该一个对象;

     方法2()调用完毕后,应该返回一个对象。

     方法n()调用完毕后,可能是对象,也可以不是对象。

------------------------------------------------------------------

2、包的定义及注意事项

(1)其实就是文件夹

(2)作用:

     A:区分同名的类

     B:对类进行分类管理

          a:按照功能分

          b:按照模块分

(3)包的定义(掌握)

     package 包名;

     多级包用.分开。

(4)注意事项:(掌握)

     A:package语句必须在文件中的第一条有效语句

     B:在一个java文件中,只能有一个package

     C:如果没有package,默认就是无包名

------------------------------------------------------------------

3、常见的修饰符及组合

     权限修饰符:private,默认,protected,public

     状态修饰符:static,final

     抽象修饰符:abstract

------------------------------------------------------------------

4、内部类的概述及访问特点

(1)把类定义在另一个类的内部,该类就被称为内部类。

     举例:把类B定义在类A中,类B就被称为内部类。

(2)内部类的访问规则

     A:可以直接访问外部类的成员,包括私有

     B:外部类要想访问内部类成员,必须创建对象

(3)内部类的分类

     A:成员内部类

     B:局部内部类

(4)成员内部类

     A:private 为了数据的安全性

     B:static 为了访问的方便性

     成员内部类不是静态的:

          外部类名.内部类名 对象名 = new 外部类名.new 内部类名();

     成员内部类是静态的:

          外部类名.内部类名 对象名 = new 外部类名.内部类名();

------------------------------------------------------------------

posted @ 2015-07-30 17:04  何海洋  阅读(718)  评论(0编辑  收藏  举报