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

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

Java复习第三天的更多相关文章

  1. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  2. Java复习8.多线程

    Java复习8 多线程知识 20131007 前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线 ...

  3. Java复习10.Servlet编程

    Java复习10. Servlet编程知识 20131008 前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面 ...

  4. Java复习4.数组初始化.

    Java复习4.Java中的数组声明方式  20131004 1.数组声明和初始化, 数组元素和变量一样,可以在定义的时候i进行初始化.数组元素的初始化工作实在编译阶段完成的,可以减少运行时间. 在初 ...

  5. java复习面向对象(二)

    java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...

  6. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  7. 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题

    调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...

  8. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  9. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

随机推荐

  1. 浅谈K8S cni和网络方案

    此文已由作者黄扬授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在早先的k8s版本中,kubelet代码里提供了networkPlugin,networkPlugin是一组接 ...

  2. opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

    很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...

  3. GPU大百科全书 第一章:美女 方程与几何

    沉鱼落雁   前言:当你酣战在星际2的时候,或者当你在艾泽拉斯游历的时候,你有没有想过,眼前的这些绚丽的画面究竟是怎么来的呢?也许对大多数人来说,GPU对于图形的处理过程并不是那么重要,但总会有些人, ...

  4. WEB新手之签到题

    写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...

  5. “全栈2019”Java第十七章:赋值运算符和算术运算符

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Linux环境下动态链接库的生成和使用

    使用自己封装的so时遇到了点问题,本着简便原则决定写个demo看看,顺便记录下整个过程. 1)生成so所需的文件如下: print.h #ifndef __print_h__ #define __pr ...

  7. iOS 设备定位功能可用的判断

    if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] ...

  8. 省选后CTS/APIO前文化课划水记

    目前没有什么明确的目标,所以就叫划水吧. 第一周 4.9 (Tue) 早上 10:00 到学校,然后去仓库找了张桌子,搬到教室,开始自习生活. 拿出"必背古诗文",发现除了< ...

  9. weex 编译vue成js

    cd 项目 1.开发 npm run web 开发过程中可以直接使用浏览器运行 npm run ios 2.打包 npm run build 会在 dist 文件夹 中生成js文件, 即可拖入ios ...

  10. 修改testng源码,添加beforeMethod和afterMethod中的日志到test中(可以不改源码,废弃)

    在使用testng生成报告的时候,只会记录test方法中的日志,但是一般会在beforeMethod.beforeTest.afterMethod.afterTest中做一下数据的处理,这里面的日志没 ...