• 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 外部类名.内部类名();

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

  • 相关阅读:
    ZOJ4125 Sekiro
    ZOJ4118 Stones in the Bucket
    ZOJ4115 Wandering Robot
    ZOJ4113 Calandar
    【递归】N皇后问题 和 2n皇后问题 dfs
    7-18
    7_13
    二维前缀和
    64位整数乘法
    【分治】魔法石的诱惑
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4655139.html
Copyright © 2020-2023  润新知