新手 java 在构造函数中给类中的变量赋值问题

package complex_number;
import java.util.*;

public class ComplexNumber {

public static void main(String[] args){
    java.util.Scanner scanner = new java.util.Scanner(System.in);
    float m_dRealPart;
    float m_dImaginPart;

    System.out.println("Please enter the real and imaginary parts of the plural:");
    m_dRealPart=scanner.nextFloat();
    m_dImaginPart=scanner.nextFloat();
    System.out.println("\n");
    System.out.println("What kind of operation do you want to do? (1 Plus, 2 minus, 3 multiply, 4 divide)");
}

/*构造函数,ComplexNumber,将实部和虚部置0*/
public ComplexNumber(){
m_dRealPart=0;
m_dImaginPart=0;
}

    请问在构造函数的时候为什么会错?

3个回答

这两个变量的作用域有问题,是在main入口函数中定义的,但是却在构造函数中使用,这个是不行的。你可以把两个变量定义为类级的,然后两个函数中就可以用了。
package complex_number;
import java.util.*;
public class ComplexNumber {
float m_dRealPart;
float m_dImaginPart;_**
public static void main(String[] args){
java.util.Scanner scanner = new java.util.Scanner(System.in);

System.out.println("Please enter the real and imaginary parts of the plural:");
m_dRealPart=scanner.nextFloat();
m_dImaginPart=scanner.nextFloat();
System.out.println("\n");
System.out.println("What kind of operation do you want to do? (1 Plus, 2 minus, 3 multiply, 4 divide)");

}

public ComplexNumber(){
m_dRealPart=0;
m_dImaginPart=0;
}
}

你的变量:

 m_dRealPart和m_dImaginPart

在main方法中,构造方法根本就访问不到这两个家伙。对于构造方法来说,哎,这两货色是哪来的,我不认识。
简单来说,一个方法不能直接访问只属于另一个方法中的东西。
解决方法:你要把这两个变量的声明放在类的下面,和方法处于同一级别,这样变量就是类的“东西”,就可以被其他方法使用了。

首先明白构造函数是用来干嘛的,构造函数是用来初始化类用的。用来给类中的或者父类中的成员赋值或者操作用的。m_dRealPart,m_dImaginPart这两个变量并不是ComplexNumber的成员,所有你在构造函数里面赋值肯定是错的。main方法使特殊的方法,不属于类所有。你在main方法中定义表面这是main方法中的变量。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐