day8-9(一)
来源:互联网 发布:南昌seo自动优化软件 编辑:程序博客网 时间:2024/04/29 22:30
Java枚举与内部类
一,枚举
在c语言中,可以使用结构体,枚举,集合,联合,到Java中使用class还保留了枚举并没有结构体和联合枚举用来放置常量
package com.howell.bean;/** * Created by HowellZhang on 2016/8/9. */public class EnumDemo { public static void main(String[] args) { // Season season=new Season();//枚举类型不可以被实例化 //0在switch中进行枚举匹配 Season season=Season.SPRING; switch(season){ case SPRING: System.out.println("春天来了"); break; case SUMMER: System.out.println("夏天来了"); break; case AUTUMN: System.out.println("秋天来了"); break; case WINTER: System.out.println("冬天来了"); break; default: break; } }}//接口中可以直接存放枚举interface B{ public void b(); enum EnumOne implements B{ ; @Override public void b() { } }}enum Season implements B{//--Seanson 等同于类名是枚举名.//枚举可以使用实现不可以使用继承extends /** * 四个常量等同于枚举自己调用构造方法四次,构建了四个对象. * 下面的四个常量不仅是当前枚举的值也是当前枚举的四个对象 * 通常在枚举中放置一系列常量 * 不同类型的常量会把这些常量放置到常量类(抽象的),或接口中 * 如果是相同的类型,如十二个月,星期,会通常放置在枚举中 */ //该种写法的常量必须放在第一行 SPRING("春天",1),SUMMER,AUTUMN,WINTER;//如果枚举中没有方法,末尾可以不加分号,反之必须添加分号 //public Season(){}//error-枚举构造方法不可以使用public,protected.通常选择私有 private Season(){} private Season(String str,int i){//对应SPRING("春天",1) } //枚举可以嵌套枚举 enum Test{} public Season method(){ return this; } @Override public void b() { }}
二内部类
package com.howell.bean;/** * Java中内部类经常与C++中的InnerClass,内部类,嵌套类,和局部类进行概念区分 * * * Java中的内部类就是把下面中的4中变量替换成4个class * 在使用上以成员或匿名居多 * Created by HowellZhang on 2016/8/9. */public class InnerClass { int i;//成员变量 class Inner_A{//--成员内部类,不可以使用静态,无论是方法还是属性 } static int l;//--静态成员变量 static class Inner_B{//--静态内成员内部类,如果一个类被static修饰,那么这个类一定内部类 //--因为static是属于类的,被修饰的类属于另外一个类 } public void method(int j){//j形式参数,局部变量 int k=0;//局部变量 class Inner_C{//--写在方法里的类,局部内部类,无论方法静态还是非静态,不可以静态修饰,静态内部类只有一种写法就是静态成员内部类, } method(new InnerClass_A(){//匿名内部类,本质上构建对象 //问题,是谁的对象?InnerClass_A的? //-看不见类的对象:需要补充,记得回去看老师代码!! }); } public void method(InnerClass_A A){ }}class InnerClass_A{ public void showTest(String str){ }}
练习: 练习:在一个类提供4种内部类,各提供方法,进行创建调用
package com.howell.bean;/** * Created by HowellZhang on 2016/8/9. */public class InnerTest { public class Inner_one{ public void showOne(){ System.out.println("这是成员内部类,hello one"); } } public static class Inner_Two{ public static void showTwo(){ System.out.println("这是静态内部类,hello Two"); } } public void InnerTestShow(){ class Inner_Three{ public void showThree(){ System.out.println("这是局部内部类,hello Three"); } } Inner_Three inner_three=new Inner_Three(); inner_three.showThree(); } public interface Inner_Four{ void showFour(); } public static void main(String[] args) { Inner_one inner_one=new InnerTest().new Inner_one(); inner_one.showOne(); Inner_Two inner_two=new Inner_Two(); inner_two.showTwo(); InnerTest innerTest=new InnerTest(); innerTest.InnerTestShow(); Inner_Four inner_four=new Inner_Four() { @Override public void showFour() { System.out.println("这是匿名内部类的调用,hello four"); } }; inner_four.showFour(); }}
0 0
- day8-9(一)
- day8-6(一)
- day8-9(二)
- day8
- DAY8
- Day8
- DAY8
- Day8
- day8
- Day8
- 实习日志day8---任务一总结
- day8,9 c语言作业
- 黑马程序员---java基础之day8-9
- Linux基础和C高级,day8,9,10,数据结构
- day8-笔记
- Day8.01
- Day8.02
- Day8.03
- android开发设置应用开机自启动(2)——并使应用实时保持在前台
- 浅谈如何将NoSQL引入现有架构系统
- RMQ转换LCA模板 ST算法
- Codeforce 705B 组合/统计 博弈论
- 数据结构实验之二叉树四:还原二叉树
- day8-9(一)
- JS input 限制输入类型
- web特征值判断
- caffe 更改源码,使得输入数据为多个标签
- 利用SVM(支持向量机)和MNIST库在OpenCV环境下实现手写数字0~9的识别
- iOS swift 基础五
- LeetCode—381. Insert Delete GetRandom O(1) - Duplicates allowed
- 用MathType编辑上下尖括号有哪些技巧
- ActiveMQ学习教程(一)——安装与示例