刚刚做了一些作业,望大家帮忙指正
每题5分吧,大家帮我打分,看看我能有多少分!Java面向对象试题
1. 下面哪些类可以被继承?
java.lang.Thread (T)
java.lang.Number (T)
java.lang.Double (F)
java.lang.Math (F)
java.lang.Void (F)
java.lang.Class (F)
java.lang.ClassLoader (T)
看不明白 orz!
--------------------------------------
2. 抽象类和接口的区别。
答: 抽象类可以被子类继承,但不能被实现
而接口可以被子类实现,但不能被继承,接口之间也可以多继承
--------------------------------------
3. 在java中一个类被声明为final类型,表示了什么意思?
答: 一个类被声明了final类型后,这个类将成为最终类,不能被继承
--------------------------------------
4. Error与Exception有什么区别?
答: Error是致命异常,不可以自身处理,需要抛给用户去处理
Exception是普通的异常,可以经过try自身处理,或者抛给调用者处理。
--------------------------------------
5. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
答: Overload方法名相同,参数不同。
Override返回值、方法名和参数完全相同。
不可以。
如果改变返回值类型则是另外一个方法了。
--------------------------------------
6. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
答: 1:接口是可以继承接口,而且还可以支持多继承。
2:不可以,因为抽象类是不能实例化,而接口也是一样。
3:继承是可以继承,但是由于抽象类无法实例化(new)所以完全没有意义。
--------------------------------------
7. 构造器Constructor是否可被override?
答: 不可以。因为Constructor方法名必须跟类名一样,而且前面不能定义返回值,所以只能被overload不能被override。
--------------------------------------
8. 是否可以继承String类?
答: 还没学到..不过按道理来说是可以的,可能会有局限性。orz!
--------------------------------------
9. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答: finally()里的code是一定会执行的,除非遇到System.stop(0)。
如果try没有异常抛出则在return之后,如果有异常抛出则在return之前。
--------------------------------------
10. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答: 看来我基础还不行呐,放弃了。
--------------------------------------
11. 编程题: 写一个Singleton出来。
答: 看不懂,我写一个person吧。
class Person
{
private String name;
private String sex;
void set (String name,String sex)
{
this.name = name;
this.sex = sex;
}
void get()
{
System.out.println("名字:"+name+"\n性别:"+sex);
}
}
class Worker extends Person
{
void work()
{
System.out.println("翔翔工作者");
}
}
class Demo
{
public static void main(String[] args)
{
Worker w = new Worker();
w.set("小明","man");
w.get();
w.work();
}
}
-----------------------------------
12. float型float f=3.4是否正确?
答: 不正确。
因为3.4是一个double类型会损失精度
可对3.4强转float后再赋值。
-----------------------------------
13. 写一个方法,实现字符串的反转,如:输入abc,输出cba
class Charr
{
void charr(char[] arr)
{
for (int x=0;x<arr.length;x++)
{
for (int y=0;y<arr.length-1 ;y++ )
{
if(arr[y]<arr[y+1])
{
char temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]);
}
}
}
class Demo
{
public static void main(String[] args)
{
char[] arr = {'a','b','c'};
Charr r = new Charr();
r.charr(arr);
}
}
------------------------------------------
14. char型变量中能不能存贮一个中文汉字?为什么?
答: 每个中文汉字需要占2个字节的空间,而char型变量只有一个字节的空间。
------------------------------------------
15. STRING与STRINGBUFFER的区别。
答: 15和16题目一样的晕。
没学到,放弃。
------------------------------------------
17. throw和throws有什么不同?
答: throw是用在方法里,用于抛出异常对象。
thorows是用在方法上,用于抛出异常类,可以抛出多个。
------------------------------------------
18. "deprecated API",是什么意思?
答: 也是没学到呢。
------------------------------------------
19. 什么是内部类,内部类在什么情况下应用。
答: 在一个类的成员里或者在一个类的方法里建立一个类,叫做内部类。
当描述事物时,事物的内部还有事物,那么该事物就用内部类来应用。
------------------------------------------
20. 什么是静态自由块,主要有什么作用。
答: 随着类的加载而执行,而且只执行一次,并且优先于主函数。
用于对类进行初始化。