问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

为什么我输出的是空值 求解释一下

public class Test{
	String name;
	String sex;
	static int age;
	public void mingzi(){
		name="如意";
		System.out.println(name);	
		
	}
	public void xingbie(){
		sex="女";
		System.out.println(sex);
		
	}
	public static void nianling(){
		age=22;
		System.out.println(age);
	}
	public void show(){
		System.out.println("名字"+name+"年龄"+age+"性别"+sex);
	}
	public static void main(String[] args){
		Test hello=new Test();
		hello.show();
	}
}


提问者:qq_Sun丶_2 2017-07-29 17:08

个回答

  • burg_xun
    2017-07-29 17:32:20
    已采纳

    public class Test {

    String nameString;

    String sexString;

    static int ageInt;


    public Test(String name, String sex, int age) {

    nameString = name;

    sexString = sex;

    ageInt = age;

    }

        

    public void show(){

            System.out.println("名字"+nameString+"年龄"+sexString+"性别"+ageInt);

        }

    public static void main(String[] arge) {

             Test demoTest=new Test("测试", "男", 27);

             demoTest.show();

    }

    }


  • 一川烟草_0
    2017-07-29 19:49:54

    没有构造函数,看Java入门1.10

  • 慕斯卡0135426
    2017-07-29 17:46:35

    String name; // 声明变量name
     String sex; // 声明变量sex
     static int age;// 声明静态变量age
       
        // 构造方法
     public HelloWorld(){
      System.out.println("通过构造方法初始化name");
      name = "tom";
     }
       
        // 初始化块
     {
      System.out.println("通过初始化块初始化sex");
      sex = "男";
     }
       
        // 静态初始化块
             static{
      System.out.println("通过静态初始化块初始化age");
      age = 20;
     }
       
     public void show() {
      System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);
     }
       
     public static void main(String[] args) {
           
            // 创建对象
      HelloWorld hello = new HelloWorld();
      // 调用对象的show方法
           hello.show();
           
     }

  • 慕粉18716026321
    2017-07-29 17:30:06

    你的name,sex等的赋值都在别的函数里,你想用你赋的值得调用那些函数呀,在show函数里name,sex都是空的。

  • burg_xun
    2017-07-29 17:26:15

    如果这样的话  你至少要写一个有参数的构造函数呀  才能输出 你的值呀  你这样的写法  name age sex 都是默认值 当然 不显示了呀