版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35654259/article/details/84546994
分析程序看有没有问题,如果有,说出原因即可
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}//这边出错了 public abstract boolean isStupidName(String name);
}
2.
public class Something {
void doSomething () {
private String s = "";//错误 局部变量不能用private修饰 因为局部变量在用完后空间就会自动释放
int l = s.length();
}
}
3.
abstract class Something {
private abstract String doSomething ();//错误 private不能与abstract一起使用 因为abstract修饰方法是用来重写但private得权限只在该类有效
}
4.
public class Something {
public int addOne(final int x) {
return ++x;//错误 final修饰基本类型变量 基本类型变量是常量 final int x = 实参; 之后又进行 ++x 相当于++3;这无法进行
}
}
5.
//正确
/*
final修饰引用类型变量时,只要引用类型的变量所指向的地址值不发生改变就行 至于内部数据无需考虑
*/
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;
}
6.
//正确
/*
在加载类的字节码文件时 会自动给类的成员变量附上默认值
*/
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);//输出i = 0
}
}
7.
class Something {
final int i;//会报错 因为被final修饰的变量只能赋值一次。 解决方法可以在构造代码块中进行初始化 带不能在方法内进行初始化 因为在调用完方法后其值会消失
public void doSomething() {
System.out.println("i = " + i);
}
}
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());//报错 要么成员方法用static修饰 要么使用对象访问成员方法
}
public String doSomething() {
return "Do something ...";
}
}
9.
class Something {
private static void main(String[] something_to_do) { //报错 main是由JVM调用 只能用private修饰 至于something_to_do没问题
System.out.println("Do something ...");
}
}
10.
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 final
}
public static void main(String[] args) {
new C().pX();
}
}
11.
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() {
ball = new Ball("Football");//会报错 接口中的成员变量默认修饰符是 public static final而在这边 ball被赋了两次地址值
System.out.println(ball.getName());
}
}