zoukankan      html  css  js  c++  java
  • Java笔试--代码纠错

    package practice.javase;
    public abstract class Name {
           private String name;
           public abstract boolean isStupidName(String name){};
    }

    错误:编译无法通过,原因抽象方法不能有方法体;改正,将抽象方法改为普通方法,或去掉方法体;

    package practice.javase;
    public abstract class Name {
           private String name;
           public abstract boolean isStupidName(String name);;
    }
    package practice.javase;
    public abstract class Name {
           private String name;
           public boolean isStupidName(String name){
                  return false;};
    }

    package practice.javase;
    public class Something {
           void doSomething(){
                  private String s = "";
                  int l = s.length();
           }
    }

    错误:编译无法通过,原因局部变量不能有权限修饰符,权限修饰符是为了设置访问权限而设定的,局部变量的访问权限已经确定是在方法体内了,故错误,改正,去掉权限修饰符;

    package practice.javase;
    public class Something {
           void doSomething(){
                  String s = "";
                  int l = s.length();
           }
    }

    package practice.javase;
    public abstract class Something1 {
           private abstract String doSomething();
    }

    错误:编译无法通过,原因抽象类中的抽象方法是要被其子类继承和重写的,所以权限只能是public或者protected,或者默认权限,不能使private,private不能被其他类访问,和抽象本意冲突,没有意义;

    package practice.javase;
    public abstract class Something1 {
           abstract String doSomething();
    }

    package practice.javase;
    public class Something2 {
           public static void main(String[] args) {
                  Something2 something2 = new Something2();
                  something2.doString();
                  System.out.println("something2.doString return"+doString());
           }
           
           public String doString(){
                  return "Do SomeString.....";
           }
    }

    错误:静态方法中不能调用非静态的方法或成员变量,如果想调用,只能通过对象调用,因为他是实例方法不是类方法;

    package practice.javase;
    public class Something2 {
           public static void main(String[] args) {
                  Something2 something2 = new Something2();
                  something2.doString();
                  System.out.println("something2.doString return"+something2.doString());
           }
           
           public String doString(){
                  return "Do SomeString.....";
           }
    }

    此处Somestring3类的文件名是OtherString.java
    package practice.javase;
    public class Something3 {
           private static void main(String[] something_to_do){
                  System.out.println("Do Something....");
           }
    }

    错误:这段代码编译不会报错,但是我们注意一个问题Somestring3类的文件名是OtherString.java,那么就一定不正确,java的机制是编译后生成.java文件,解释器解释成二进制文件

    package practice.javase;
    public class OtherString {
           private static void main(String[] something_to_do){
                  System.out.println("Do Something....");
           }
    }

    package practice.javase;
    public interface A {
           int x = 0;
    }
    package practice.javase;
    public class B {
           int x = 1;
    }
    package practice.javase;
    public class C extends B implements A{
           public void pX(){
                  System.out.println(x);
           }
           public static void main(String[] args) {
                  new C().pX();
           }
    }

    Class C编译报错:
    接口的含义理解:接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的
    接口的成员特点:
    A:成员变量 只能是常量。默认修饰符 public static final
    B:成员方法 只能是抽象方法。默认修饰符 public abstract
    推荐:永远手动给出修饰符。
    在Class C中继承了B,继承了B中非私有的方法和属性,但要通过super关键字来调用父类中的成员变量和方法;

    package practice.javase;
    public class C extends B implements A{
           public void pX(){
                  System.out.println(super.x);
           }
           public static void main(String[] args) {
                  new C().pX();
           }
    }

    package practice.javase;
    public interface Playable {
           void play();
    }
    
    package practice.javase;
    public interface Bounceable {
           void play();
    }
    
    package practice.javase;
    public interface Rollable extends Playable, Bounceable{
           Ball ball = new Ball("PingPang");
    }
    
    package practice.javase;
    public class Ball implements Rollable{
           private String name;
           public Ball(String name) {
                  super();
                  this.name = name;
           }
           public String getName() {
                  return name;
           }
           
           public void play(){
                  ball = new Ball("FootBall");
                  System.out.println(ball.getName());
           }
           
    }
    
    错误:编译错误,错误在ball = new Ball("FootBall");,变量未经声明,
    package practice.javase;
    public class Ball implements Rollable{
           private String name;
           public Ball(String name) {
                  super();
                  this.name = name;
           }
           public String getName() {
                  return name;
           }
           
           public void play(){
                  Ball ball = new Ball("FootBall");
                  System.out.println(ball.getName());
           }
           
    }

  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/lin-jing/p/7241621.html
Copyright © 2011-2022 走看看