【无标题】

1.局部变量能否和成员变量重名____
A.可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量
B.可以,这时可用“local”关键字来指向局部变量
C.不能,局部变量不能与成员变量重名
D.不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量
2.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要___
A. System.out.print (buffer[i]);
B. DataOutputStream dout = new DataOutputStream(new FileOutputStream(this.filename));
C. DataInputStream din = new DataInputStream(new FileInputStream(this.filename));。
D. System.in.read(buffer)。
3.关于下列程序段的输出结果,说法正确的是:____

public class MyClass{
    static int i;
    public static void main(String argv[]){
        System.out.println(i);
    }
}

A.有错误,变量i没有初始化。
B.null
C.1
D.0

4.下列哪一个方法你认为是新线程开始执行的点,也就是从该点开始线程n被执行。
A.public void start()
B.public void run()
C.public void int()
D.public static void main(String args[])
E.public void runnable()
5.下面哪几个语句正确的声明一个整型的二维数组___
A.int a[ ][ ]=new int[ ][ ]
B.int b[10][10]=new int[ ] []
C.int c[ ][ ]=new int[10][10]
D.int [ ]d[ ]=new int[10][10]
6.能用来修饰interface的有_____
7.下面哪个方法是 public void example(){…} 的重载方法? ( )
A.public void Example( int m){…}
B.public int example(){…}
C.public void example2(){…}
D.public int example ( int m, float f){…}
8.我们在程序中经常使用“System.out.println()”来输出信息,语句中的System是包名,out是类名,println是方法名
A.对
B.错
9.JDK1.8版本之前,抽象类和接口的区别,以下说法错误的是
A.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。
B.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。
C.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法默认都是 public abstract 类型的。
D.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。
10.下列描述正确的是( )?
A.类不可以多继承而接口可以多实现
B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化
D.一个类可以有多个直接基类和多个基接口

(1)解析:
局部变量可以和成员变量重名,不加“this”修饰时,优先使用最近的变量。
在这里插入图片描述
(2)解析:input和output指的是对于程序而言。input是从文件读取进来,output是输出到文件。
(3)解析:
类变量在不设置初始值时,会进行默认值赋值,而局部方法中声明的变量则必须进行初始化,他不会进行默认值赋值。
(4)解析:B
要写一个线程类,可以继承Thread方法,然后override他的run()方法
另一种方法是实现Runable接口,即为实现run()方法。
A,start()是启动一个线程的方法
(5)解析:C D
在这里插入图片描述
(6)解析:
java中接口只能使用public修饰,接口内方法默认为public abstract

(7)解析:考察的是方法重载的定义。
方法名相同------------------排除AC选项。
方法的参数类型,参数个不一样。-----------------B选项和题目中的都没有参数,所以排除B选项。
方法的返回类型可以不相同
方法的修饰符可以不相同
(8)解析:
System是java.lang中的类,out为System中的一个静态成员,out是java.io.PrintStream类的对象,而println()是java.io.PrintStream类的方法,所有可以调用类.静态方法.println()方法
(9)解析:D
1)接口可以继承接口,而且可以继承多个接口,但是不能实现接口,因为接口中的方法全部是抽象的,无法实现;
另外,如果是Java 7以及以前的版本,那么接口中可以包含的内容有:1. 常量;2. 抽象方法
如果是Java 8,还可以额外包含有:3. 默认方法;4. 静态方法
如果是Java 9,还可以额外包含有:5. 私有方法
2)普通类可以实现接口,并且可以实现多个接口,但是只能继承一个类,这个类可以是抽象类也可以是普通类,如果继承抽象类,必须实现抽象类中的所有抽象方法,否则这个普通类必须设置为抽象类;

3)抽象类可以实现接口,可以继承具体类,可以继承抽象类,也可以继承有构造器的实体类。
抽象类中可以有静态main方法;抽象类里可以没有抽象方法,没有抽象方法的抽象类就是不想让别人实例化它;
另外,抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法,可以用于实例化抽象类的字段。

下面总结常见的抽象类与接口的区别:
1)抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象;
2)接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现(java8中 接口可以有实现方法 使用default修饰);
3)接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量;
4)抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类;
5)抽象方法要被实现,所以不能是静态static的,也不能是私有private的,也不能被final修饰(试想一下,静态方法可以被类名直接调用,而类名直接调用一个没有实现的抽象方法没有意义)。
(10)解析:
1.java支持单继承,却可以实现多个接口。a对d错
2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值