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
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...
随机推荐
- javaScript数组循环删除
遍历数组循环的时候,限定条件不要写arr.length,因为数组的长度会随着删除元素的同时减小. 例如,一个原本长度为10的数组,如果采用 for(var i = 0; i< arr.lengt ...
- 6.shap以及selector的使用
功能:相当于自定义一个模板 首先,要新建一个drawble文件夹 然后,再新建一个XML文件 在<shap></shap>中写内容 <corners/>圆角 < ...
- java 用socket制作一个简易多人聊天室
代码: 服务器端Server import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{ ...
- ant-环境变量
ant是绿色免安装的,通常习惯放在C盘根目录下,如:C:\apache-ant-1.9.4 那么环境就应该配置为: ANT_HOME=C:\apache-ant-1.9.4(注意:这里不需要加分号)P ...
- 简单的分页sql
select top 5 * from books where id not in(select top (5*(5-1)) id from Books order by id) order by i ...
- Poj(2771),最大独立集
题目链接:http://poj.org/problem?id=2771 Guardian of Decency Time Limit: 3000MS Memory Limit: 65536K To ...
- Entity Framework 第二篇 事务
Entity Framework 事务 结合第一篇的代码 public class BaseRepository : ITransaction, IDisposable { private XFDb ...
- WITH (NOLOCK)
缺点: 1.会产生脏读 2.只适用与select查询语句 优点: 1.有些文件说,加了WITH (NOLOCK)的SQL查询效率可以增加33%. 2.可以用于inner join 语句 脏读: 一个用 ...
- css 中的position z-index em rem zoom 的基本用法
1.position定位: CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. ...
- UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句
update table2 b,(select b.area_id as arid,sum(a.user_amount) as bcount from table1 a,table2 b where ...