专业的网站建设公司排名,注册 网站开发 公司,重庆seo排名技术,搜索排名广告营销一、枚举
自定义枚举 当我们使用 enum 关键字开发一个枚举类时#xff0c;默认会继承 Enum 类, 而且是一个 final 类[如何证明],老师使用 javap 工具来演示传统的 public static final Season2 SPRING new Season2(“春天”, “温暖”); 简化成 SPRING(“春天”, “温暖”)…一、枚举
自定义枚举 当我们使用 enum 关键字开发一个枚举类时默认会继承 Enum 类, 而且是一个 final 类[如何证明],老师使用 javap 工具来演示传统的 public static final Season2 SPRING new Season2(“春天”, “温暖”); 简化成 SPRING(“春天”, “温暖”) 这里必须知道它调用的是哪个构造器.如果使用无参构造器 创建 枚举对象则实参列表和小括号都可以省略当有多个枚举对象时使用,间隔最后有一个分号结尾枚举对象必须放在枚举类的行首. package Null;public class B {public static void main(String[] args) {System.out.println(Season.AUTUMN);System.out.println(Season.SPRING);}
}class Season {// 类private String name;private String desc; // 描述/**步骤* 1. 将构造器私有化,目的防止 直接 new* 2. 去掉 setXxx 方法, 防止属性被修改* 3. 在 Season内部直接创建固定的对象* 4. 优化:可以加入 final 修饰符*/ //定义了四个对象, 固定public static final Season SPRING new Season(春天, 温暖);public static final Season WINTER new Season(冬天, 寒冷);public static final Season AUTUMN new Season(秋天, 凉爽);public static final Season SUMMER new Season(夏天, 炎热);private Season(String name, String desc) {this.name name;this.desc desc;}public String getName() {return name;}public String getDesc() {return desc;}Overridepublic String toString() {return Season{ name name \ , desc desc \ };}
}枚举类
public static void main(String[] args) {System.out.println(Season.AUTUMN);}
}enum Season {// 类/** 如果使用了 enum 来实现枚举类 * 1. 使用关键字 enum 替代 class* 2. public static final Season SPRING new Season(春天, 温暖) 直接使用 * SPRING(春天, 温暖) 解读 常量名(实参列表) * 3.如果有多个常量(对象) 使用 ,号间隔即可* 4.如果使用 enum 来实现枚举要求将定义常量对象写在 最前面 * 5.如果我们使用的是无参构造器创建常量对象则可以省略 ()*/ SPRING(春天, 温暖), WINTER(冬天, 寒冷), AUTUMN(秋天, 凉爽), SUMMER(夏天, 炎热); private String name;private String desc; // 描述private Season(String name, String desc) {this.name name;this.desc desc;}public String getName() {return name;}public String getDesc() {return desc;}Overridepublic String toString() {return Season{ name name \ , desc desc \ };}
}enum 常用的方法 toString:Enum 类已经重写过了返回的是当前对象 名,子类可以重写该方法用于返回对象的属性信息name返回当前对象名常量名子类中不能重写ordinal返回当前对象的位置号默认从 0 开始values返回当前枚举类中所有的常量valueOf将字符串转换成枚举对象要求1. 根据你输入的字符串到 Season 的枚举对象去查找 2.如果找到了就返回如果没有找到就报compareTo比较两个枚举常量比较的就是编号 二、注解 Override: 限定某个方法是重写父类方法, 该注解只能用于方法Deprecated: 用于表示某个程序元素(类, 方法等)已过时,即不在推荐使用但是仍然可以使用SuppressWarnings: 抑制编译器警告信息 三、Java面向对象高级作业 public class Homework {public static void main(String[] args) {//老韩解读//1. 匿名内部类是/*new ICalculate() {Overridepublic double work(double n1, double n2) {return n1 n2;}}, 同时也是一个对象他的编译类型 ICalculate, 他的运行类型就是 匿名内部类*/Cellphone cellphone new Cellphone();cellphone.testWork(new ICalculate() {Overridepublic double work(double n1, double n2) {return n1 n2;}}, 10, 8);//18.0cellphone.testWork(new ICalculate() {Overridepublic double work(double n1, double n2) {return n1 * n2;}}, 10, 8);}
}
/*
1.计算器接口具有work方法功能是运算有一个手机类Cellphone定义方法testWork测试计算功能调用计算接口的work方法
2.要求调用CellPhone对象 的testWork方法使用上 匿名内部类*/
//编写接口
interface ICalculate {//work方法 是完成计算但是题没有具体要求所以自己设计//至于该方法完成怎样的计算我们交给匿名内部类完成public double work(double n1, double n2) ;
}
class Cellphone {//老韩解读当我们调用testWork方法时直接传入一个实现了ICalculate接口的匿名内部类即可//该匿名内部类可以灵活的实现work,完成不同的计算任务public void testWork(ICalculate iCalculate, double n1, double n2) {double result iCalculate.work(n1, n2);//动态绑定System.out.println(计算后的结果是 result);}
}Vehicles接口
public interface Vehicles {//有一个交通工具接口类Vehicles有work接口public void work();
}Horse 类
public class Horse implements Vehicles {Overridepublic void work() {System.out.println( 一般情况下使用马儿前进...);}
}Boat 类
public class Boat implements Vehicles {Overridepublic void work() {System.out.println( 过河的时候使用小船.. );}
}VehiclesFactory 类
public class VehiclesFactory {//马儿始终是同一匹private static Horse horse new Horse(); //饿汉式private VehiclesFactory(){}//创建交通工具工厂类有两个方法分别获得交通工具Horse和Boat//这里我们将方法做成staticpublic static Horse getHorse() {
// return new Horse();return horse;}public static Boat getBoat() {return new Boat();}public static Plane getPlane() {return new Plane();}
}
public class Person {private String name;private Vehicles vehicles;//在创建人对象时事先给他分配一个交通工具public Person(String name, Vehicles vehicles) {this.name name;this.vehicles vehicles;}//思考一个问题如何不浪费在构建对象时传入的交通工具对象-动脑筋public void passRiver() {//如何防止始终使用的是传入的马 instanceOf//vehicles instanceof Boat 是判断 当前的 vehicles是不是Boat//(1) vehicles null : vehicles instanceof Boat false//(2) vehicles 马对象 vehicles instanceof Boat false//(3) vehicles 船对象 vehicles instanceof Boat trueif (!(vehicles instanceof Boat)) {vehicles VehiclesFactory.getBoat();}vehicles.work();}public void common() {//得到马儿//判断一下当前的 vehicles 属性是null, 就获取一匹马//if (vehicles null) {if (!(vehicles instanceof Horse)) {//这里使用的是多态vehicles VehiclesFactory.getHorse();}//这里体现使用接口调用vehicles.work();}//过火焰山public void passFireHill() {if (!(vehicles instanceof Plane)) {//这里使用的是多态vehicles VehiclesFactory.getPlane();}//这里体现使用接口调用vehicles.work();}
}
//有Person类有name和Vehicles属性在构造器中为两个属性赋值public class Homework06 {public static void main(String[] args) {Person tang new Person(唐僧, new Horse());tang.common();//一般情况下tang.passRiver();//过河//过火焰山tang.passFireHill();}
}
/*
1.有一个交通工具接口类Vehicles有work接口
2.有Horse类和Boat类分别实现Vehicles
3.创建交通工具工厂类有两个方法分别获得交通工具Horse和Boat
4.有Person类有name和Vehicles属性在构造器中为两个属性赋值
5.实例化Person对象“唐僧”要求一般情况下用Horse作为交通工具遇到大河时用Boat作为交通工具
6.增加一个情况如果唐僧过火焰山, 使用 飞机 程序扩展性, 我们前面的程序结构就非常好扩展 10min
使用代码实现上面的要求
编程 需求----理解----代码--优化*/ 文章转载自: http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.lgtzd.cn.gov.cn.lgtzd.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn http://www.morning.tzlfc.cn.gov.cn.tzlfc.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.xjmyq.com.gov.cn.xjmyq.com http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.ydwnc.cn.gov.cn.ydwnc.cn http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn http://www.morning.jbnss.cn.gov.cn.jbnss.cn http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.qkqzm.cn.gov.cn.qkqzm.cn http://www.morning.fdrch.cn.gov.cn.fdrch.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn http://www.morning.bmfqg.cn.gov.cn.bmfqg.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.qggm.cn.gov.cn.qggm.cn http://www.morning.bttph.cn.gov.cn.bttph.cn http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn http://www.morning.xscpq.cn.gov.cn.xscpq.cn http://www.morning.tyjp.cn.gov.cn.tyjp.cn http://www.morning.btpll.cn.gov.cn.btpll.cn http://www.morning.cplym.cn.gov.cn.cplym.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn http://www.morning.tlyms.cn.gov.cn.tlyms.cn http://www.morning.grxsc.cn.gov.cn.grxsc.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.fnlnp.cn.gov.cn.fnlnp.cn http://www.morning.pqppj.cn.gov.cn.pqppj.cn http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.fktlr.cn.gov.cn.fktlr.cn http://www.morning.jtfsd.cn.gov.cn.jtfsd.cn http://www.morning.bpmns.cn.gov.cn.bpmns.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.nkpls.cn.gov.cn.nkpls.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn http://www.morning.pznnt.cn.gov.cn.pznnt.cn http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn http://www.morning.cbczs.cn.gov.cn.cbczs.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn http://www.morning.jbztm.cn.gov.cn.jbztm.cn http://www.morning.nfpgc.cn.gov.cn.nfpgc.cn http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn http://www.morning.ljyqn.cn.gov.cn.ljyqn.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.dfkby.cn.gov.cn.dfkby.cn http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn http://www.morning.mflhr.cn.gov.cn.mflhr.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn