Java基礎常見錯誤

學習Java的時候,順便整理了幾個容易忽略的錯誤:


(一):

import java.io.*;
class Dec{
public void decrement(double decMe){
decMe=decMe-0.1;
System.out.println(decMe);//是沒有傳出去,所以那個d的值沒有改變

}
}


class Q1{
public static void main(String args[]){
double d=1.23;
Dec dec=new Dec();
dec.decrement(d);
//System.out.println(d);
}
}



(二):

import java.io.*;


class A{
int a=1;
public A(int a){
this.a=a;//而這個卻是指向的就是成員變量,所以改變了。
}
public A(){
int a=10;//因爲是在函數裏面定義的局部變量,沒有改變成員變量的值
}
}


class B extends A{
public B(int a){
super(a);
}
public B(){
super();
}

public static void main(String args[]){
B b=new B();System.out.println(b.a);
b=new B(20); System.out.println(b.a);
}
}



(三):

import java.io.*;


class A{
void show(){
System.out.println("showA");
}
void display(){
System.out.println("A.display()");
}
}


class B extends A{
void show(int i){
System.out.println("showB");
}
void display(){
System.out.println("B.display()");
}
}


public class reView37{
public static void main(String args[]){
A a=new B();
a.display();
a.show(1);

}
}


//這個程序是有錯誤的,原因是a是父類的引用,在子類產生的對象,
//它只能調用父類的show(),卻不能調用子類的show(int i),可以調用方法重寫,
//不能調用重載的函數



(四):

import java.io.*;


public class reView40{
public static void main(String args[]){
B b=new B(2000);
}
}


class A{
int a=5;
A(){
System.out.println("A..."+a);
}
}


class B extends A{
int b=3;
B(int x){
b=x;System.out.println("B..."+b);
}
}


//結果A和B都會顯示出來,原因是按照從父類到子類的順序調用構造函數



(五):

import java.io.*;


public class reView42{
public static void main(String args[]){
A a=new A();
A.B b=a.new B();
b.mb(333);
}
}




class A{
private int s=111;
class B{
private int s=222;
public void mb(int s){
System.out.println(s);
System.out.println(this.s);
System.out.println(A.this.s);
}
}
}


//內部類的聲明和調用,this的使用


發佈了31 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章