小编pei*_*ang的帖子

Java中继承的私有方法

我对在继承中使用私有方法感到困惑,例如:

public class A {
    private void say(int number){
        System.out.print("A:"+number);

    }
}

public class B extends A{
    public void say(int number){
        System.out.print("Over:"+number);
    }
}

public class Tester {
    public static void main(String[] args) {

        A a=new B();
        a.say(12);

    }
}
Run Code Online (Sandbox Code Playgroud)

基于上面的代码,我感到困惑的私有方法的继承,是继承了私有方法class AB?或者两个类中的say方法完全不相关?由于代码有当它在main()方法运行错误,好像class B不能调用从私有方法class A.

java inheritance private-methods

4
推荐指数
1
解决办法
2万
查看次数

Java Setter和Constructor混淆

我对如何在Java中使用构造函数和setter感到困惑,请参阅下面的示例代码:

public class Name {
   private String name;

   public void setName(String name){
      this.name=name;
   }  
   public String getName(){
      return name;
   }
}

public static void main(String[] args) {
    Name a=new Name();
    a.setName("123");       
    System.out.println(a.getName());
}
Run Code Online (Sandbox Code Playgroud)

它打印出123,它使用没有构造函数的setter方法,我还编写了下面的其他代码:

public class Name {
   private String name;


   public Name(String nm){
      name=nm;
   }
   public String getName(){
      return name;
   }  
}



public static void main(String[] args) {
   Name a=new Name("123");

   System.out.println(a.getName());

}
Run Code Online (Sandbox Code Playgroud)

这个也打印出123,它是使用没有setter方法的构造函数,这就是为什么我不明白构造函数和setter之间使用的区别,请指教,欢呼!

java setter constructor

3
推荐指数
1
解决办法
6042
查看次数

int或byte混淆

public class Tester {
    public Tester(){
        System.out.println("Hello");
    }

    public Tester(byte b){
        System.out.println("byte");
    }

    public Tester(int i){
        System.out.println("int");
    }

    public static void main(String[] args) {
        Tester test=new Tester(12);
    }
}
Run Code Online (Sandbox Code Playgroud)

请告知为什么打印是int,我也尝试过其他整数,它们都打印为int,但是例如,1 2 3 4 5 6 7 ....这些数字也可以称为byte,对吧?那么为什么只调用int?

java int byte

-1
推荐指数
1
解决办法
113
查看次数

标签 统计

java ×3

byte ×1

constructor ×1

inheritance ×1

int ×1

private-methods ×1

setter ×1