abstract;匿名內部類/單例設計模式/不用for迴圈求11000的值
阿新 • • 發佈:2018-12-26
目錄
單例設計模式
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);
}
}