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

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

最新文章

  1. Jquery 轮播图简易框架
  2. js加载完所有的图片,适合电子相册哦~~~~
  3. CentOS7上搭建WEB服务器
  4. iOS 摇一摇
  5. php随机验证码
  6. css中字符换行的一些问题
  7. OVS 中的哈希表: shash
  8. When to use next() and return next() in Node.js
  9. meta标签整合
  10. input标签实现小数点后两位保留小数
  11. Linux Crontab Shell脚本实现秒级定时任务
  12. 【bzoj1150】[CTSC2007]数据备份Backup 模拟费用流+链表+堆
  13. 清北合肥day1
  14. windos上安装jenkins部署springboot的jar包(未运行,只是在打包并上传linux成功了)
  15. 【POJ 3476】A Game with Colored Balls
  16. 深入浅出理解 COOKIE MAPPING
  17. R302指识别开发笔记
  18. C语言语法树
  19. vuex 操作姿势
  20. JQuery能够高效地操作页面元素

热门文章

  1. ng 发生 Error: ELOOP: too many symbolic links encountered...
  2. windbg 常用命令详解
  3. 快速启动工具Rulers 4.1
  4. MIT 黑科技:通过脑电波和手势控制机器人
  5. consul部署多台Docker集群
  6. MPMoviePlayerViewController不能播放本地mp4的解决办法.
  7. [原创]Redis 持久化说明及配置
  8. ios真机测试问题
  9. javascript 将 table 导出 Excel ,可跨行跨列
  10. ImportError: No module named 'tkinter'