来京学习第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类中的代码
相关文章推荐
- Machine Learning Foundations 第9节-第12节
- hdu 5288 OO’s Sequence
- [2015-07-19] python005
- java中的进程与线程及java对象的内存结构
- [转]java int与integer的区别
- C语言11 -- 函数指针
- LeetCode(29) Divide Two Integers
- iOS开发 ----- C文件读写,以及字符串分割
- redhat 6.4 安装VirtualBox自动增强功能功:unable to find the sources of your current Linux kernel
- extendGcd,即扩展欧几里得算法的C++模板化解释
- iOS 用代码添加模态视图
- 阿里云服务器 安装rz,sz
- poj_1753_高斯消元
- 人丑就要多读书(13)
- 第5章面试2--专家打分
- scikit-learn:4.1. Pipeline and FeatureUnion: combining estimators(特征与预测器结合;特征与特征结合)
- C语言10 -- 动态内存分配
- st函数--区间最大最小值
- 算法之动态规划
- java中自动生成编码,例如18位,20位等