java基础面向对象试题分析
2014-04-06 13:24
274 查看
请看代码,是否有问题。如果有,说明哪里有问题?
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
有问题。
抽象方法不能有方法体。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有问题。
private修饰不能修饰局部变量。
3.
abstract class Something {
private abstract String doSomething ();
}
有问题。
private和abstract不能共存。
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
有问题。
常量不能在被赋值。
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
没有问题。
基本类型被final修饰,值不能改动。
引用类型被fianl修饰,地址值不能改动,但是对象的内容是可以改动的。
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
public static void main(String[] args)
{
new Something().doSomething();
}
}
没有问题。
7.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
public static void main(String[] args)
{
new Something().doSomething();
}
}
有问题。
final修饰的变量必须在构造方法执行完毕前明确赋值。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
有问题。
在main里面要想调用doSomething,要么用对象,要么doSomething静态。
9.
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
有问题。
jvm不明确调用的是哪个x变量。
10.
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
//x = 20;
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
有问题。
接口中定义的是常量,不能被被重新创建对象了。
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
有问题。
抽象方法不能有方法体。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有问题。
private修饰不能修饰局部变量。
3.
abstract class Something {
private abstract String doSomething ();
}
有问题。
private和abstract不能共存。
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
有问题。
常量不能在被赋值。
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
没有问题。
基本类型被final修饰,值不能改动。
引用类型被fianl修饰,地址值不能改动,但是对象的内容是可以改动的。
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
public static void main(String[] args)
{
new Something().doSomething();
}
}
没有问题。
7.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
public static void main(String[] args)
{
new Something().doSomething();
}
}
有问题。
final修饰的变量必须在构造方法执行完毕前明确赋值。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
有问题。
在main里面要想调用doSomething,要么用对象,要么doSomething静态。
9.
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
有问题。
jvm不明确调用的是哪个x变量。
10.
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
//x = 20;
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
有问题。
接口中定义的是常量,不能被被重新创建对象了。
相关文章推荐
- java基础22(Javaoo17)——面向对象的分析与设计
- 黑马程序员——java基础(面向对象)进制转换、数组、内存分析
- JAVA_SE基础——24.面向对象的内存分析
- JAVA_SE基础——24.面向对象的内存分析
- 黑马程序员-java基础第5、6天-面向对象(类的组成部分分析)
- java基础--内存分析(四)(面向对象其他概念)
- java基础--面向对象(1)
- 黑马程序员_Java基础面向对象
- 黑马程序员——Java基础---面向对象
- Java基础知识-面向对象-内部类
- 信息化基础知识 典型试题分析
- 黑马程序员_Java基础_面向对象
- 黑马程序员_java基础之面向对象(二)
- java试题(基础)
- java基础学习面向对象之多态 五-10
- 【java基础 17】集合中各实现类的性能分析
- 一个比较综合的Java语言基础试题
- 复习基础-JAVA多线程,主线程等待子线程分析
- 黑马程序员——java基础之面向对象
- JAVA基础——如何理解面向对象