Class
แบบร่างของออบเจ็กต์ เราเรียกว่า คลาส (class) ส่วนสิ่งที่เราสร้างขึ้นมาตามแบบร่างนั้น ก็คือ อินสแตนซ์(instance) ซึ่ง ออบเจ็กต์หลายออบเจ็กต์ ที่มีลักษณะบางอย่างที่เหมือนกัน ซึ่งเราสามารถจัดให้อยู่ภายในคลาสเดียวกันได้ และในแต่ละอินสแตนซ์ ก็จะมีคุณสมบัติพื้นฐาน (class variable) และพฤติกรรมพื้นฐาน (class method) ที่เหมือนกัน
ชนิดของคลาส แบ่งตามการใช้งาน
- คลาสที่ทำหน้าที่เป็นชนิดข้อมูล เช่น คลาส class1_1
- คลาสที่ทำหน้าที่เป็นผู้เรียกใช้ชนิดข้อมูล หรือเป็น Application แบ่งเป็น คลาส String และคลาส JOptionPane
โครงสร้างของ class
[class Modifiers] class ชื่อclass
{
fields Member Variables -> ( properties)
methods Member Functions -> behaviors
nested Classes/Interface
}
------------------------------------------------------------------------------------------
static members = class member
static variables = class variables และ
static methods = class methods
Methods
public class class2{
public static void main(String[] args){
sub1 hello=new sub1();
}
}
class sub2{
public sub2(){
System.out.println("Hello! from sub2\n");
}
}
class sub1{
public sub1(){
System.out.println("Hello! from sub1\n");
sub2 hello=new sub2();
}
}
public class class3_static0{
int x1=20;
public static void main(String[]args){
sub1_1();
// sub1_3();
// x1=30;
}
static int var1=10;
int var2=20;
public static void sub1_1()
{
System.out.println("var1+10 from sub1_1 "+(var1+10));
sub1_2();
}
public static void sub1_2()
{
System.out.println("var1 from sub1_2 "+var1);
// System.out.println("var2 from sub1_2 "+var2);
}
public void sub1_3()
{
System.out.println("from sub1_3");
}
}
//class3_static1.java
public class class3_static1
{
int x1 = 20;
public static void main(String[] args)
{
sub1 hello1 = new sub1();
System.out.println("object hello1 var1 from sub1 "+ hello1.var1);
hello1.sub1_1();
//System.out.println("x1 from main "+ x1);
hello1.sub1_2();
System.out.println("var1 Static var from sub1 "+ sub1.var1);
System.out.println("var1 Static var from sub2 "+ sub2.var1);
hello1.sub1_3();
hello1.var1 = 20 ;
sub1 hello2 = new sub1();
System.out.println("object hello2 var1 from sub1 "+ hello2.var1);
System.out.println("var1 Static var from sub1 again "+ sub1.var1);
System.out.println("direct access to class method");
sub3.sub3_1();
}
}
class sub1
{
static int var1 = 10;
int var2 = 20;
public static void sub1_1() {
System.out.println("var1 + 10 from sub1_1 " + (var1+10));
System.out.println("Hello! from sub1\n");
}
public void sub1_2(){
System.out.println("var1 from sub1_2 " + var1);
System.out.println("var2 from sub1_2 " + var2);
}
public void sub1_3() {
System.out.println("class variable from class sub2 " + sub2.var1);
}
}
class sub2
{
static int var1 = 10;
}
class sub3
{
static int var1 = 10;
public static void sub3_1()
{
System.out.println("Hello! from sub3 and var1 " + var1);
}
}
public class m0{
public static void main(String [] args){
mt0Car1 car1 = new mt0Car1();
car1.showmodel();
}
}
class mt0Car1{
private int gear ;
private static final String model = "Camel V6" ;
private void showModel(){
System.out.println("car 's Model : "+ model);
}
}
public class mt1{
public static void main(String [] args){
mt1Car1 car1=new mt1Car1();
car1.changeGear(5);
System.out.println("Current gear is "+car1.showGear());
}
}
class mt1Car1{
private int gear;
void changeGear(int gear){
this.gear=gear;
}
int showGear(){
return gear;
}
}
public class mt3{
public static void main(String [] args){
mt3Pass1 p1=new mt3Pass1();
p1.testPass(10,20);
System.out.println("p1.a is "+p1.a+"\np1.b is "+p1.b);
mt3Pass2 p2=new mt3Pass2();
p2.testPass(p1);
System.out.println("p1.a is "+p1.a+"\np1.b is "+p1.b);
}
}
class mt3Pass1{
int a,b;
void testPass(int i,int j){
a=i;b=j;
}
}
class mt3Pass2{
void testPass(mt3Pass1 x){
x.a+=10;x.b+=20;
}
}
การบ้าน GUI คือ
- High-level API ดูแลอินเทอร์เฟซระดับสูง
- Low-level API จัดการกราฟิกระดับต่ำ
- Display ตัวจัดการจอภาพ
- Displayable ตัวนำอ็อบเจ็กต์มาแสดง
คลาส Screen แยกย่อยเป็น 4 คลาส - Form รวมคอมโพเนนต์ต่างๆ อยู่ในหน้าจอเดียว
- Command สร้างเมนูสำหรับผู้ใช้
- Alert แจ้งเตือนหรือแจ้งข้อผิดพลาด
- TextBox สร้างกรอบรับข้อความจากผู้ใช้
- List สร้างรายการให้ผู้ใช้เลือก
- TextField สร้างกรอบรับข้อความบรรจุใน Form
- ChoiceGroup สร้างรายการบรรจุใน Form ให้ผู้ใช้เลือก
- StringItem แสดงข้อความใน Form
- Image แสดงรูปกราฟิกใน Form
- ImageItem แสดงรูปกราฟิก + ข้อความกำกับรูป
- Gauge โชว์กราฟแท่งแทนตัวเลข
- DateField รับข้อมูลวัน-เวลาตามที่ผู้ใช้เลือก
- Ticker โชว์ตัวอักษรวิ่ง
ที่มา http://witty.net/books/j2me.html