您的位置:首页 > 编程语言 > Java开发

Java基础常见错误

2015-12-05 09:53 471 查看
学习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的使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: