java基础——面向对象

java面向对象三大特征:封装、继承、多态;   

继承是实现类复用的重要手段,除此之外,也可以通过组合关系来实现这种复用,相比较,使用继承实现复用,子类对象可以直接赋给父类变量,这个变量具有多态性,编程更加灵活,而利用组合关系实现复用则不具备这种灵活。    继承破坏了父类良好的封装性,尽量使用private,如果父类必须是public函数,而不能被子类重写,则用final修饰符;如果希望被子类重写但不希望由其他类访问,则用protected;     而且不要在父类构造器中调用被子类重写的方法;  

多态:java引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型有实际赋值给该变量的对象决定,如果编译时类型和运行时类型不一致,就会出现所谓的多态。Base subBase=new Subclass();   subBase调用父类中被子类继承的方法时会显示子类的方法;

static是一个特殊的关键字,它可以用于修饰方法、属性等成员。static修饰的成员表面它是属于这个类共有的,而不是属性与该类的单个实例;

 

打印对象:String  tostring(){return ...};

 

枚举类:j2SE新增enum关键字,用以定义枚举类,枚举类可以有自己的方法和属性,可以实现一个或者多个接口,也可以定义自己的构造器。一个java源文件最多只能定义一个public访问权限的枚举类,且该java源文件也必须和该枚举类的类名相同。  枚举类的构造器只能使用private访问控制符;枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类将永远都不能产生实例,列出实例时,系统自动添加public static final修饰;所·有的枚举类都提供了一个values方法,该方法可以很方便地遍历所有地枚举值。

 SeasonEnum seasonnum=Enum.valueOf(SeasonEnum.class, "SUMMER");  通过Enum的valueOf方法来获取指定枚举类的枚举值

public enum SeasonEnum {
    SPRING,SUMMER,FALL,WINTER;
}
public class TestNum {
public void judge(SeasonEnum s)
{
    switch(s)
    {
    case SPRING:System.out.println("穿暖花开");break;
    case SUMMER:System.out.println("烈日炎炎");break;
    case FALL:System.out.println("秋高气爽");break;
    case WINTER:System.out.println("围炉赏雪");break;
    }
    
    }
public static void main(String args[])
{
    for(SeasonEnum s:SeasonEnum.values())
    {
        System.out.println(s);
        }
TestNum testNum=new TestNum();
testNum.judge(SeasonEnum.FALL);

}

}

对象与垃圾回收:垃圾回收机制只负责回收堆内存中对象,不会回收任何物理资源。垃圾回收机制回收任何对象之前,总会先调用它的finalize方法,该方法可能使该对象重新复活,从而导致垃圾回收机制取消回收。强制系统垃圾回收有如下两个方法:1、调用System类的gc() 2、调用Runtime对象的gc()

Runtime.getRuntime().gc();

 

posted @ 2017-02-21 14:47  叮咚叮咚126  阅读(135)  评论(0编辑  收藏  举报