20170810 - 今日技能封装 - Q
Posted 清及
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20170810 - 今日技能封装 - Q相关的知识,希望对你有一定的参考价值。
需列入每日问题——题目思路回溯。
1 猜数字游戏思路是?
2 构造器,构建器是什么?
3 this只可以用在哪里?
4 new出来的是什么?
5 数组属于基本类型还是引用类型?
6 基本类型数组是什么类型数据?
7 如何创建引用类型数组?
8 引用类型数组内元素默认值为多少?
9 给引用类型数组元素赋值应如何编写?
10 cells[0] = new cell(2,5);cells[0]是什么类型数据,在哪?装了什么?
11 问cells[0].row为多少?
cells[0] = cells[1];
cells[1].row = 5
cells[0].row = 6
12 如何初始化cell型数组内的元素?
13 如何创建引用类型数组的数组?默认值为?如何为数组内元素赋值?
14 cells是什么数组?
15 int [ ][ ] arr = new int[3][ ];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[2];
arr[1][1] = 100;
分别是什么含义?
15 若数组内每个数组内元素个数相同,可如何缩写?
16 凡是碰到需要写元素个数的情况,应注意什么?
17 arr[0][1] = 100;表示什么?
18 若引用类型数组内每个元素值相同,可通过什么赋值?
19 1 创建一个有4个元素的cell数组
为每一个元素单独赋值
2 创建一个有4个元素的cell型数组,并统一赋值
3 创建有三个元素的int型二维数组
第一个元素有三个值,2-3,3-2
20 定义引用类型数组类内方法时,调用了类属性,那么该属性需要一开始就赋值吗
cell[] cells = new cell[]
(一开始只是定义,无初始化)?
21 引用类型数组的类后续定义方法时,调用类内属性需传参吗?
22 定义构造方法时可以直接赋值吗?如cells[0].row = 1;
23 如何构建构造方法?
24 如何使一个类继承另外一个类?
25 继承除成员变量外还继承了什么?
26 可以嵌套继承吗?如B继承A,C继承B,C拥有A内成员变量吗?
27 什么是泛化?
28 如何理解继承后的类?
29 为何子类中明明没有构造cells,但却可以被子类调用?
29 子类构造方法都会调用super()吗?
29 如何调用父类的构造方法,成员变量,方法?实际中是怎样呢?
30 super指什么?
31 构造子类之前必须?
32 super()指什么
33 父类定义了有参构造,调用子类为什么会报错?
34 break跳出的是?
35 在for循环内需要用for来循环判断的情况用什么辅助判断?
36 什么是向上造型?向上造型后可以访问什么对象?
37 如何判断造型?
38 什么类型可以接收多个类型的对象?
39 建议自己造型传值还是系统造型?
40 向上造型用于什么情况?
41 Animal t = new Tiger()
能点(t.cells)出什么,看什么?
42 子类内父类的属性,方法,前面默认带?
43 如何判断成员变量是否能被调用?
44 类可以自调用吗?
45 向上造型时,可否访问到子类元素?
46 继承时体现什么性?向上造型时体现什么性?
47 简述一个继承父类的子类的创建过程.
48 同一类文件下应如何定义新的类?
49 super用于什么情况?
50 父类中是什么?子类中是什么?
51 如何定义引用类型数组对象?
52 类内定义方法时,调用了类内属性,需要在其前加this.吗?
53 何时需要用到向上造型?
54 漏写,
1 注意定义方法时传的是对象,不是对象的某个属性
//2 然后再在方法内调用对象的属性。
//3 定义方法时,穿的参数为父类类型参数。
55 如何定义父类的构造方法,什么思路,即在实际应用如何联系父类构造建立子类构造(实际:先建父类,再建子类)?
定义子类共有的属性及方法.
拿俄罗斯方块来说
父类定义子类共有的属性,因此
cell[] cells = new cell[4]
而子类T便是在父类创建的cells基础上构造,
子类T的构造需要传参,于是便加上参数
T(int row,int col){
}
思路理清,做题速度大大提升(包括建类等)!!
需列入每日问题——题目思路回溯。
1 猜数字游戏思路是?
2 构造器,构建器是什么?
构造方法。
3 this只可以用在哪里?
类中方法里。
4 new出来的是什么?
都是对象。
5 数组属于基本类型还是引用类型?
引用类型,所以引用类型数组是引用类型。
6 基本类型数组是什么类型数据?
引用类型
7 如何创建引用类型数组?
cell[] cells = new cell[4];
8 引用类型数组内元素默认值为多少?
null
9 给引用类型数组元素赋值应如何编写?
cell[] cells = new cell[4];
cells[0] = new cell();
10 cells[0] = new cell(2,5);cells[0]是什么类型数据,在哪?装了什么?
引用类型数据,但装在堆中(cells[0]是cells数组的成员变量),cell[0]对象的地址。
11 问cells[0].row为多少?
cells[0] = cells[1];
cells[1].row = 5
cells[0].row = 6
6
12 如何初始化cell型数组内的元素?
cell[] cells = new cell[]{
new cell(0,1),
new cell(0,1),
new cell(0,1),
}
13 如何创建引用类型数组的数组?默认值为?如何为数组内元素赋值?
cell[][] cells = new ceel[10][]
null
cells[0] = new cell[1];
14 cells是什么数组?
中括号前什么型,就是什么类型的数组,cell[]型数组的数组。
15 int [ ][ ] arr = new int[3][ ];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[2];
arr[1][1] = 100;
15 若数组内每个数组内元素个数相同,可如何缩写?
cell[][] = new cell[2][3]
16 凡是碰到需要写元素个数的情况,应注意什么?
不要写死,用arr.length.
17 arr[0][1] = 100;表示什么?
给arr数组内第一个数组元素的第二个元素赋值为100。
18 若引用类型数组内每个元素值相同,可通过什么赋值?
遍历。
19 1 创建一个有4个元素的cell数组
为每一个元素单独赋值
2 创建一个有4个元素的cell型数组,并统一赋值
3 创建有三个元素的int型二维数组
第一个元素有三个值,2-3,3-2
cell[] cells = new cell[4];
cells[0] = new cell(2,5);
cells[1] = new cell(1,3);
cells[2] = new cell(3,5);
System.out.println(cells[3]);
cell[] cells2 = new cell[]{
new cell(0,1),
new cell(2,2),
new cell(3,5)
};
int[][] int1 = new int[4][];
int1[0] = new int[3];
int1[1] = new int[3];
int1[2] = new int[2];
int1[2][1] = 100;
int[][] int2 = new int[3][5];
for(int i = 0;i < int2.length;i++){
for(int j = 0;j < int2[i].length;j++){
int2[i][j] = 100;
System.out.println(int2[i][j]);
}
}
20 定义引用类型数组类内方法时,调用了类属性,那么该属性需要一开始就赋值吗
cell[] cells = new cell[]
(一开始只是定义,无初始化)?
不需要,只要在构造方法中为属性初始化即可,不初始化则会出现无指针错误.
从实际应用过程解析,首先new一个对象,对象在建立时首先调用构造方法,
为成员变量赋值,
(接着再使用其方法)
若无定义构造方法,则会赋予默认值,引用类型数组的数据类型的默认值为null,所以后续在使用定义的方法时,
会出现无指针错误.
因此需要构造一个赋予默认值的方法,如属性为cell型数组,构建其构造方法(赋值给其属性cells)
J(){
cells = new cell[4];
}
由于格子位置属性会变化,因此需要传参,因此改为.
J(int row,int col){
cells = new cell[4];
cells[0] = new cell(row,col);
cells[1] = new cell(row+1,col);
cells[2] = new cell(row+2,col);
cells[3] = new cell(row+2,col-1);
}
无参构造方法
J(){
this(0,0);
}
21 引用类型数组的类后续定义方法时,调用类内属性需传参吗?
不需要.
22 定义构造方法时可以直接赋值吗?如cells[0].row = 1;
由于cells[0]为引用类型数据,所以默认值为null,需要先定义为cell型才可使用./
23 如何构建构造方法?
需要记住构造方法的本质是:为成员变量赋于初值.
因此如果成员变量为cell[] cells,那么为cells赋值的方法便是
cells = new cell[];
24 如何使一个类继承另外一个类?
class pupil extends person{
}
25 继承除成员变量外还继承了什么?
类方法
26 可以嵌套继承吗?如B继承A,C继承B,C拥有A内成员变量吗?
拥有.
27 什么是泛化?
即继承.
28 如何理解继承后的类?
相当于一开始便有父类的属性及方法.
29 为何子类中明明没有构造cells,但却可以被子类调用?
tetromino(){
cells = new cell[4];
}
构造子类之前先构造父类,构造父类则会调用构造方法,构造方法会赋cells默认值,
若为有传参,且参数名与父类成员变量同名,则父类中成员变量必须加this.以示区分,
cells值再提供给子类使用.
构造子类之前先构造父类:
29 子类构造方法都会调用super()吗?
会.
29 如何调用父类的构造方法,成员变量,方法?实际中是怎样呢?
super();
super.cell;
super.getInfo();
无需添加super.
30 super指什么?
当前对象的父类对象.
31 构造子类之前必须?
构造父类.
32 super()指什么
父类的构造.
33 父类定义了有参构造,调用子类为什么会报错?
(定义了有参则默认为调用有参构造)子类无传参到父类的构造中.
34 break跳出的是?
用于跳出循环及switch.
35 在for循环内需要用for来循环判断的情况用什么辅助判断?
开关算法,for循环判断循环变量是否符合跳出条件,符合则false(并用跳出break),再在判断布尔类型并输出.
//方法2,将所有情况遍历,用if...else...——好处:效率更高
36 什么是向上造型?向上造型后可以访问什么对象?
父类方法可以接受所有子类对象.
父型的引用指向了子型的对象,子型的对象赋给了父型;父类中定义的成员变量及方法.
Animal o1 = new Tiger()
37 如何判断造型?
新建对象符合小转大
38 什么类型可以接收多个类型的对象?
父类接收子类.
39 建议自己造型传值还是系统造型?
自己造型传值,更直观.
40 向上造型用于什么情况?
相同类型子类的方法重载可转化为方法的重载.
public static void printWall(T t){
}
public static void printWall(tetromino t){
}
41 能点(t.cells)出什么,看什么?
与引用有关,与对象无关.
42 子类内父类的属性,方法,前面默认带?
super.
43 如何判断成员变量是否能被调用?
1 是否具有传递性?
2 是否符合继承.
44 类可以自调用吗?
可以.
public class ExerciseTest {
public static void main(String[] args){
ExerciseTest f = new ExerciseTest();
System.out.println(f.add("4", "5"));
}
public int add(int x, int y) {
return x + y;
}
public String add(String x,String y) {
return x + y;
}
}
45 向上造型时,可否访问到子类元素?
不能.
46 继承时体现什么性?向上造型时体现什么性?
传递性,不可传递性.
47 简述一个继承父类的子类的创建过程.
首先调用父类的构造方法,若定义了有参构造,则必须在子类的构造方法第一行用super();传参,
再构造子类的构造方法,而其他的属性及方法则可理解为一开始就存在.
48 同一类文件下应如何定义新的类?
在 文件名类 外部定义,
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
father F = new father();
son s = new son();
F = s;
return F.so;
}
}
class father{
int num;
father(){
num = 5;
}
}
class son extends father{
int so;
son(){
so = 5;
}
}
49 super用于什么情况?
子类成员变量或方法与父类变量或方法同名时.
50 父类中是什么?子类中是什么?
父类中是多个子类共有的属性方法,子类中是子类特有的属性和方法
51 如何定义引用类型数组对象?
不需要定义,是在某个对象抽象而出的类中定义.
52 类内定义方法时,调用了类内属性,需要在其前加this.吗?
不需要.
53 何时需要用到向上造型?
条件为:定义的方法适合多个子类对象,
于是在此时将子类对象赋值给父类对象,从而实现同一个方法,接收多个类型的数据,
注意方法内调用的参数为父类的参数.
54 漏写,
1 注意定义方法时传的是对象,不是对象的某个属性
//2 然后再在方法内调用对象的属性。
//3 定义方法时,穿的参数为父类类型参数。
55 如何定义父类的构造方法,什么思路,即在实际应用如何联系父类构造建立子类构造(实际:先建父类,再建子类)?
定义子类共有的属性及方法.
拿俄罗斯方块来说
父类定义子类共有的属性,因此
cell[] cells = new cell[4]
而子类T便是在父类创建的cells基础上构造,
子类T的构造需要传参,于是便加上参数
T(int row,int col){
}
思路理清!!
以上是关于20170810 - 今日技能封装 - Q的主要内容,如果未能解决你的问题,请参考以下文章