Java面向对象深度

简介:

局部内部类

package ch6;

/**
 * Created by Jiqing on 2016/11/21.
 */
public class LocalInnerClass { // 局部内部类
    public static void main(String[] args) {
        // 定义局部内部类
        class InnerBase {
            int a;
        }

        // 定义局部内部类的子类
        class InnerSub extends InnerBase
        {
            int b;
        }

        // 创建局部内部类对象
        InnerSub is = new InnerSub();
        is.a = 5;
        is.b = 10;
        System.out.println("InnerSub对象的a和b实例变量是:" + is.a + "," + is.b);
    }
}

强制回收

package ch6;

/**
 * Created by Jiqing on 2016/11/21.
 */
public class Gc {
    public static void main(String[] args) {
        for(int i = 0; i<4;i++) {
            new Gc();
            // System.gc(); // 强制回收内存
            Runtime.getRuntime().gc();
        }
    }

    public void finalize() {
        System.out.println("正在回收内存");
    }
}

抽象类与抽象函数

package ch6.Shape;

/**
 * Created by Jiqing on 2016/11/21.
 */
public abstract class Shape {
    private String color;
    public abstract double calPerimeter();
    public abstract String getType();
    public Shape() {}
    public Shape(String color) {
        System.out.println("执行Shape构造器...");
        this.color = color;
    }
}
package ch6.Shape;

/**
 * Created by Jiqing on 2016/11/21.
 */
public class Triangle extends Shape {
    private double a;
    private double b;
    private double c;
    public Triangle(String color,double a,double b,double c){
        super(color);
        this.setSides(a,b,c);
    }

    public void setSides(double a,double b,double c){
        if (a >= b + c || b >= a + c|| c >= a + b) {
           System.out.println("三角形两边之和大于第三边...");
           return;
        }
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public double calPerimeter() {
        return a + b + c;
    }

    public String getType() {
        return "三角形";
    }

    public static void main(String[] args) {
        Shape t = new Triangle("黑色",3,4,5);
        System.out.println(t.calPerimeter());
        System.out.println(t.getType());
    }
}

枚举类

package ch6.Enum;

/**
 * Created by Jiqing on 2016/11/21.
 */
public enum SeasonEnum { // 枚举类
    SPRING,SUMMER,FALL,WINTER;
}
package ch6.Enum;

/**
 * Created by Jiqing on 2016/11/21.
 */
public class Enum {
    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("冬天寒冷,被窝赏雪");
        }
    }

    public static void main(String[] args) {
        for (SeasonEnum s : SeasonEnum.values()) {
            System.out.println(s);
        }
        new Enum().judge(SeasonEnum.FALL);
    }
}
package ch6.Enum;

/**
 * Created by Jiqing on 2016/11/21.
 */
public enum Operation { // 编译程序会生产5个class文件
    PLUS{ // 匿名内部子类
        public double eval(double x,double y) {
            return x + y;
        }
    },
    MINUS {
        public double eval(double x,double y) {
            return x - y;
        }
    },
    TIMES {
        public double eval(double x,double y) {
            return  x * y;
        }
    },
    DIVIDE {
        public double eval(double x,double y) {
            return x/y;
        }
    };
    public abstract double eval(double x,double y);

    public static void main(String[] args) {
        System.out.println(Operation.DIVIDE.eval(1.2,2.3));
    }
}


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6087610.html,如需转载请自行联系原作者
相关文章
|
21天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
15 3
|
1月前
|
Java 关系型数据库
JAVA面向对象设计原则
JAVA面向对象设计原则
12 1
|
1月前
|
算法 Java
java面向对象和面向过程分析
java面向对象和面向过程分析
38 0
|
1月前
|
Java
java面向对象高级分层实例_实体类
java面向对象高级分层实例_实体类
10 1
|
1月前
|
Java 物联网 测试技术
Java面向对象程序设计3面向对象基础
Java面向对象程序设计3面向对象基础
169 0
|
2天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
2天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
6 0
|
7天前
|
安全 Java 机器人
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
19 0
|
10天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
14天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
46 0
对象的交响曲:深入理解Java面向对象的绝妙之处