パッケージをコンパイルしよう

インポートって、要するに違うファイルからの読み込みね。すっかり忘れてる or スルーしてた。

package jp.hpscript.myapp;
import jp.hpscript.myapp.model.User;
import jp.hpscript.myapp.model.AdminUser;

public class MyApp {

	public static void main(String[] args){
		User tom = new User("Tom");
		// System.out.println(tom.name);
		tom.sayHi();

		AdminUser bob = new AdminUser("bob");
		// System.out.println(bob.name);
		bob.sayHi();
		bob.sayHello();
	}
}
package jp.hpscript.myapp.model;

public class User {
	protected String name;

	public User(String name){
		this.name = name;
	}

	public void sayHi(){
		System.out.println("hi!" + this.name);
	}
}
package jp.hpscript.myapp.model;

public class AdminUser extends User {
	public AdminUser(String name){
		super(name);
	}

	public void sayHello(){
		System.out.println("hello!" + this.name);
	}
	@Override public void sayHi(){
		System.out.println("[admin]hi!" + this.name);
	}	
}

[vagrant@localhost java]$ javac jp/hpscript/myapp/MyApp.java
[vagrant@localhost java]$ java jp.hpscript.myapp.MyApp
hi!Tom
[admin]hi!bob
hello!bob

setter, getter

class User {
	private String name;
	private int score;

	public User(String name, int score){
		this.name = name;
		this.score = score;
	}

	public int getScore(){
		return this.score;
	}

	public void setScore(int score){
		if(score > 0){
			this.score = score;
		}	
	}
}

public class MyApp {

	public static void main(String[] args){
		User tom = new User("Tom", 65);
		tom.setScore(85);
		tom.setScore(-22);
		System.out.println(tom.getScore());
	}
}
// static

class User {
	private String name;
	private static int count = 0;

	public User(String name){
		this.name = name;
		User.count++;
	}

	public static void getInfo(){
		System.out.println("# of instances: " + User.count);
	}
}

public class MyApp {

	public static void main(String[] args){
		User.getInfo();
		User tom = new User("Tom");
		User.getInfo();
		User john = new User("John");
		User.getInfo();
	}
}