Java筆試--代碼錯誤修正

來源:互聯網
上載者:User

標籤:ext   ble   super關鍵字   cti   統一   修飾符   name   turn   關鍵字   

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.javapackage 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());       }       }

 

Java筆試--代碼錯誤修正

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.