1. 程式人生 > >abstract;匿名內部類/單例設計模式/不用for迴圈求11000的值

abstract;匿名內部類/單例設計模式/不用for迴圈求11000的值

目錄

單例設計模式

package com.day2_2015_7_21;
//單例設計模式
public class Student1 {
    private static Student1 instance;//建立靜態物件
    private Student1(){//私有化構造器
    }
    public static Student1 getInstance(){//建立靜態得到物件的方法
    if(instance==null){//在靜態方法中加條件語句
        instance=new Student1();
    }
      return instance;
}
}
package com.day2_2015_7_21;
public
class test2 { public static void main(String[] args) { Student1 zhangsan=Student1.getInstance(); Student1 lisi=Student1.getInstance(); System.out.println(zhangsan); System.out.println(lisi); } }

不用for迴圈求1+…+1000的值

package com.day2_2015_7_21;
public class Add {
private int i=1
; public int sum=0; public void add(){ if(i<1001){ sum+=i; i++; add(); } } } package com.day2_2015_7_21; public class Text3 { public static void main(String[] args) { Add a=new Add(); a.add(); System.out.println(a.sum); } }

final,static的用法舉例

package com.day2_2015_7_21;
public
final class Person {//final 修飾類,類就不能被繼承 public static int eyes=2; public static final int NOSE_NUM=1;//final 修飾變數這個變數就不能再被修改 public int age; public String name; public final void speak(){//final 修飾方法方法不允許被重寫 System.out.println("我們說中國話"); } public void speak1(){//fianl 修飾變數 如果是全域性變數必須立即複製, //如果是區域性變數可以先宣告再賦值 final int i; i=12; System.out.println("我們說普通話"); } public static void run(){ System.out.println("我們會用腳跑"); } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package com.day2_2015_7_21; import static com.day2_2015_7_21.Person.NOSE_NUM; //靜態匯入 public class A { public static void main(String[] args) { Person zhangsan =new Person(); Person.run(); System.out.println("眼睛個數"+Person.eyes); System.out.println(NOSE_NUM); } }

interface 介面的用法舉例

package com.day2_2015_7_21;
public interface Fly {

}
package com.day2_2015_7_21;
public class AirVehicle implements Fly {
    public void fly(){
        System.out.println("我會飛");
    }
}
package com.day2_2015_7_21;
public interface Load {

}
package com.day2_2015_7_21;
public class Plane extends AirVehicle implements Load{
    public void load(){
        System.out.println("我能載貨");
    }
public static void main(String[] args) {
    Plane s=new Plane();
    s.fly();
    s.load();
}
}

instanceof;interface;簡單工廠設計模式

package com.day2_2015_7_21;
public interface Ink36 {
      public String getColor();
}
package com.day2_2015_7_21;
public interface Paper {
    public String getSize();
}
package com.day2_2015_7_21;
public interface Print {
    public void print(Ink36 ink,Paper paper);   
}
package com.day2_2015_7_21;
public class BeijingInk33 {
    public String getInk(){
        return("北京黑色");
    }
}
package com.day2_2015_7_21;
public class ShanghaiInk implements Ink36 {
    public String getColor(){
        return("上海紅色");
    }
}
package com.day2_2015_7_21;
public class ChenguangPaper34 implements Paper {
    public String getSize(){
        return("晨光A4");
    }
}
package com.day2_2015_7_21;
public class OtherPaper implements Paper{
    public String getSize(){
        return("其他B2");
    }
}
package com.day2_2015_7_21;
public class HHPrint35 implements Print{
         @Override
    public void print(Ink36 a, Paper b){
        System.out.println("我使用的墨盒顏色是"+a.getColor()+"我使用的紙張大小"+b.getSize());
    }
}
package com.day2_2015_7_21;
public class ApplePrint32 implements Print{
    public void print(Ink36 a, Paper b){
        System.out.println("我使用的墨盒顏色是"+a.getColor()+"我使用的紙張大小"+b.getSize());
}
}
package com.day2_2015_7_21;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class Person1 {
public Print creatPrint(){
    //簡單工廠設計模式
    Properties properties=new Properties();
    String s="";
    try{
        properties.load(new FileInputStream("config.properties"));
        s=properties.getProperty("print");
        System.out.println(s);
    }catch(IOException e){
        e.printStackTrace();
    }
    Print print=null;
    if(s.equals("hpl")){
        print=new HHPrint35();
    }else if(s.equals("apple")){
        print=new ApplePrint32();
    }
    //Print print=new HHPrint();
    return print;
}
public Paper creatPaper(){
    Paper paper=new OtherPaper();
    return paper;
}
public Ink36 creatInk(){
    Ink36 ink=new ShanghaiInk();
    return ink;
}
package com.day2_2015_7_21;
import com.day2_2015_7_21.Person1.Student;
public class Test1 {
public static void main(String[] args) {//這裡寫了三種方法第一種 print.print(ink,paper);第二種把第一種用到的類似Paper paper=person.creatPaper();的方法單獨寫了方式例如Print print =new HHPrint();用person.Print();輸出第三種是用簡單工廠設計模式
    Person1 person =new Person1();
    Paper paper=person.creatPaper();
//  Print print=person.creatPrint();
//  Ink ink=person.creatInk();
//  Print print =new HHPrint();
//  Paper paper=new ChenguangPaper();
//  Ink ink=new ShanghaiInk();
//  print.print(ink,paper); 
    person.Print();//注意不能寫成Print print=person.Print();
    if(paper instanceof ChenguangPaper34){//物件instanceof 類/介面 判斷是否是它的物件
        //該運算子用來判斷一個物件是否屬於一個類或者實現了一個介面,結果為ture或者false。
        System.out.println("我用的是晨光的紙");
    }else{
        System.out.println("我用的不是晨光的紙");
    }
 }
}
//在簡單工廠設計模式下需要建立一個file,命名為config.properties
  print=hpl

abstract;匿名內部類

package com.day2_2015_7_21;
public  abstract class Student {
    public abstract void readBook();//抽象的方法沒有體
}
package com.day2_2015_7_21;
public class Schoolboy extends Student {
   public void readBook(){
       System.out.println("語文,數學,自然,社會");
   }
}
package com.day2_2015_7_21;
public class test {
    public static void main(String[] args) {
        Schoolboy boy =new Schoolboy();
        System.out.println(boy);
        boy.readBook();
        Student s=new Schoolboy();
        //匿名內部類(一般只能使用一個此類物件的時候使用
        //相當於建立了一個類繼承了student類,
        //然後用此類構建一個物件)
        Student li=new Student(){
            public void readBook(){
            }
        };
        System.out.println(s);
    }
}