面试题三(封装、继承、多态)

一、选择题
7.如下哪些是Java中正确的整数表示? ABC
A、22 B、0x22 C、022 D、22H
022是八进制

8、下面哪个是main()函数的合法参数? C
A、char args[]
B、char args[][]
C、String arg[]
D、String args
String arg[]老式写法,不推荐使用,但是没有错误

15、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };
下面哪个表达式的值与数组下标量总数相等?B
A、 m.length()
B、m.length
C、m.length()+1
D、m.length+1
m.length是数组长度,m.length()是字符串长度

二、问答题
1.阐述面向对象的三大特征
封装:属性私有化,行为公开化,提高了代码的复用性和安全性

继承:子类继承父类的属性和方法,使得子类对象具有父类相同的属性和方法。提高了代码的复用性,这是多态的前提

多态:同一行为的不同表现形式。父类引用指向子类对象,提高了代码的可扩展性

2.overload和override区别
重载overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重载实现的是编译时的多态性(也称前绑定)。

重写override表示子类中方法可以与父类中方法的名称和参数完全相同,子类覆盖父类方法。重写实现的是运行时的多态性(也称后绑定)。

3.请说出作用域 public ,private ,protected ,以及不写时的区别
public: 公共的,不同包中的无关类可见
protected: 受保护的,不同包中的子类可见
default: 默认的,同一包中可见
private: 私有的,同一类中可见

三、编程题
在 JAVA中如何跳出当前的多重嵌套循环?
如下:阅读下面循环嵌套代码,当内层循环j == 1时,如何跳出外层循环。
代码可以修改和完善。
for(int i=0;i<3; i++)
for(int j=0;j<2;j++)
{
if( j==1)
}

解法一:给外层for循环命名直接跳出外层循环

here : for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 2; j++) {
                if(j == 1){
                    break here;
                }
            }
        }

解法二:给i赋值,间接跳出外层循环(执行完本轮外层循环再跳出外层循环)

		for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 2; j++) {
                if(j == 1){
                    i = 3;
                    break;
                }
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_33591873/article/details/107310104
今日推荐