クラス
class User { String name = "Me"; // field void sayHi(){ System.out.println("hi!"); } } public class MyApp{ public static void main(String[] args){ User tom; tom = new User(); // instance System.out.println(tom.name); tom.sayHi(); } }
コンストラクター:クラスの初期化
class User { String name; // constructor User(String name){ this.name = name; } // User(){ // this.name = "me"; // } User(){ this("me!"); } void sayHi(){ System.out.println("hi!" + this.name); } } public class MyApp{ public static void main(String[] args){ User tom; tom = new User(); // instance System.out.println(tom.name); tom.sayHi(); } }
クラスの継承とoverride
class User { String name; User(String name){ this.name = name; } void sayHi(){ System.out.println("hi!" + this.name); } } class AdminUser extends User { AdminUser(String name){ super(name); } void sayHello(){ System.out.println("hello!" + this.name); } // override @Override void sayHi(){ System.out.println("[admin] hi!" + this.name); } } public class MyApp{ public static void main(String[] args){ User tom = new User("tom"); // instance System.out.println(tom.name); tom.sayHi(); AdminUser bob = new AdminUser("bob"); // instance System.out.println(bob.name); bob.sayHi(); bob.sayHello(); } }
public:アクセス可
private:同じクラスならアクセス可能
protected:同じパッケージのみ
パッケージ化
com/hpscript/myapp/MyApp.java
package com.hpscript.myapp; import com.hpscript.myapp.model.User; import com.hpscript.myapp.model.AdminUser; // import hpscript.myapp.model.*; public class MyApp{ public static void main(String[] args){ User tom = new User("tom"); // instance // System.out.println(tom.name); tom.sayHi(); AdminUser bob = new AdminUser("bob"); // instance // System.out.println(bob.name); bob.sayHi(); bob.sayHello(); } }
com/hpscript/myapp/model/User.java
package com.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); } }
com/hpscript/myapp/model/AdminUser.java
package com.hpscript.myapp.model; public class AdminUser extends User { public AdminUser(String name){ super(name); } public void sayHello(){ System.out.println("hello!" + this.name); } // override @Override public void sayHi(){ System.out.println("[admin] hi!" + this.name); } }