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));
}
}
Java面向对象深度的更多相关文章
- java面向对象的思想(java三大特性)
用通俗易懂的语言来理解java面向对象的思想 大家都知道,java是面向对象的编程,掌握面向对象的编程思想是掌握java编程语言的核心,但是很多人在面向对象方面都存在或多或少的误区,有的是刚学完C语言 ...
- JAVA面向对象编程课程设计——网络版单机斗地主
一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...
- JAVA面向对象
JAVA面向对象 对象 我们生活中能看到能摸到的一切事物都是对象.在程序中模拟出生活中的所有东西万物皆对象 只要是对象--属性和行为(方法) 属性 对象有什么 例如:学生有姓名.学 ...
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...
- 谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...
随机推荐
- 修改ECSHOP系统红包序列号规律
ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字.如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙 ...
- java面试每日一题12
题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * public class Diamond { public static ...
- CSS3前缀自动补全方案和插件
第一种方法:prefix free,js插件,大小2kb,直接导入,无需任何浏览器兼容前缀 <script src="prefixfree.min.js"></s ...
- ReactDom.render和React.render的区别
这个是react最新版api,也就是0.14版本做出的改变.主要是为了使React能在更多的不同环境下更快.更容易构建.于是把react分成了react和react-dom两个部分.这样就为web版的 ...
- 在Java中导出word、excel格式文件时JSP页面头的设置
我们在JSP中往往会把一些表格里的东西需要导出到本地,一般都是导成word.excel格式的文件.这只需要在JSP页面头设置及在<head></head>标签中添加下面的代码: ...
- YTU 3002: 出栈顺序(栈和队列)
3002: 出栈顺序(栈和队列) 时间限制: 1 Sec 内存限制: 128 MB 提交: 80 解决: 20 题目描述 给出一个入栈序列,和一个出栈序列,判断该出栈序列是否正确. 输入 输入包含 ...
- Database
1.Mysql 本地计算机登陆mysql,(DOC界面)mysql -h 127.0.0.1 -u root -p
- Cow Bowling
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15585 Accepted: 10363 Descrip ...
- 2016 Al-Baath University Training Camp Contest-1 F
Description Zaid has two words, a of length between 4 and 1000 and b of length 4 exactly. The word a ...
- Easyui Layout Center 全屏方法扩展
$.extend($.fn.layout.methods, { full : function (jq) { return jq.each(function () { var layout = $(t ...