class Test{
public static void main(String args[]){
Subtest objectdayo = new Subtest();
objectdayo.number = 10;
objectdayo.display();
}
}
class Subtest{
private int number;
void setNumber(int newNumber){
if ((newNumber >= 1) && (newNumber <= 12)){
number = newNumber;
}
}
void display(){
System.out.println("今日は"+ number + "月です。");
}
}
これはコンパイルしようとするとエラーがでて、コンパイルすることができません。privateをつけたのにもかかわらずobjectdayo.number = 10; というように直接的に値を格納しようとしているからです。この場合、メソッド経由でのみ値を格納することができます。
class Test{
public static void main(String args[]){
Subtest objectdayo = new Subtest();
objectdayo.setNumber(10);
objectdayo.display();
}
}
class Subtest{
private int number;
void setNumber(int newNumber){
if ((newNumber >= 1) && (newNumber <= 12)){
number = newNumber;
}
}
void display(){
System.out.println("今日は"+ number + "月です。");
}
}
これだとコンパイルしてもエラーはでません。
逆に頭に public (パブリック)と書くと他のクラスからobjectdayo.number = 10;のように直接的な格納ができるようになります。頭に何も書いていない場合、その変数は public として使われますので、 public と書くのは省略することもできます。