您的位置:首页 > 其它

来京学习第8天

2015-07-21 20:31 316 查看

静态static

静态的私有属性,需要封装,即调用getter和setter方法

静态的属性和方法,属于本类和子类所共有,可以直接用父类直接引用。

静态方法内不能使用非static的变量和方法,不能用super和this.

final

final类不能继承

final方法不能被重写

final变量必须初始化,不能被修改

static final即为常量,一般用大写字母

八大基本封装类

abstract类

没有方法体,抽象方法一定在抽象类中

子类可以继承抽象类,重写子类的抽象方法

public abstract class StudentAbstract {
private int age=18;

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public abstract void read();

}
public class Pupil extends StudentAbstract{
public int i;
public Pupil(){
i=super.getAge();
}

@Override
public void read() {
// TODO Auto-generated method stub
System.out.println("math chinese"+i);

}

public class TestAbstract {
public static void main(String[] args) {
Pupil p1=new Pupil();
p1.read();

StudentAbstract s1=new Pupil();
s1.read();//向上造型后,依然调用子类的方法

StudentAbstract s2=new StudentAbstract(){public void read(){
System.out.println("English Franch");
}

};
s2.read();

}

}


面向接口的编程方法

public interface Print {
public void print(Ink ink,Paper paper);
}
public interface Paper {
public String getSize();
}
public interface Ink {
public String getColor();
}
public class HHPrint implements Print{
@Override
public void print(Ink a, Paper b){
System.out.println("我使用的墨盒颜色是"+a.getColor()+"我使用的纸张大小"+b.getSize());
}
}
public class ApplePrint implements Print{

@Override
public void print(Ink ink, Paper paper) {
// TODO Auto-generated method stub
System.out.println("我使用的墨盒颜色是"+ink.getColor()+"我使用的纸张大小"+paper.getSize());
}

}
public class OtherPaper implements Paper{
public String getSize(){
return("其他B2");
}
}
public class ShanghaiInk implements Ink {
public String getColor(){
return("上海红色");
}

}
package com.hhl.testobect3;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Person {
private int a=1;
public int sum=0;
public int add(){
if(a<1001){
sum+=a;
a++;
add();
}
return sum;
}
public Print creatPrint(){

Properties p=new Properties();
String s="";
try{
p.load(new FileInputStream("config.properties"));
s=p.getProperty("print");
}catch(IOException e){
e.printStackTrace();
}

Print print=null;
if(s.equals("hhp")){
print=new HHPrint();
}else{
print=new ApplePrint();
}

return print;
}
public Paper creatPaper(){
Paper paper=new OtherPaper();
4000

return paper;
}
public Ink creatInk(){
Ink ink=new ShanghaiInk();
return ink;
}
public void Print() {
Print print=creatPrint();
Paper paper=creatPaper();
Ink ink=creatInk();
print.print(ink, paper);
}
}
public class TestDuoTai {
public static void main(String[] args) {
Person person =new Person();
//Paper paper=person.creatPaper();
person.Print();
Person p=new Person();
System.out.println(p.add());

}

}


内部类

内部类可以使用外部类的一切,若同名,父类.this.属性名

内部类对象的创建:外部类.内部类()

 单例设计模式

创建一个类,类的构造方法私有,私有对象实例,创建一个static的公有方法,并其中进行判断,实例的构建方法:

Student st=Student.getInstance();

public class Student {
private static Student instance;
int age;
private Student(){
}

public static Student getInstance(){
if(instance==null){
instance= new Student();
}
return instance;
}
}
public class TestSimpleObject {
public static void main(String[] args) {
Student st1=Student.getInstance();
Student st2=Student.getInstance();
st1.age=10;
st2.age=20;
System.out.println(st1.age);
System.out.println(st2.age);
}


简单IT设计模式

工程创建文件config.properties, “key”=”value”,在面向接口的creatPrint()方法中可以看到引用。

递归调用

//面向接口的Person类中的代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: