黑马程序员--Java基础加强学习笔记之重载和覆写、可变参数、枚举
2013-09-25 15:54
786 查看
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
一、重载和重写区别
重载(Overload):在同一范围中声明几个功能类似的同名函数,但是同名函数的形式参数(参数个数、类型或者顺序)必须不同,这就是函数重载。
1、同名
2、形参(个数、类型、顺序)不同。
覆写(重写 Override):
1、在继承中
2、方法名、返回值、形参(个数、类型、顺序)都必须相同
3、权限,子类重写的方法权限不能低于基类
4、异常,子类抛出的异常不能比基类大
二、可变参数
1、...只能出现在参数列表的最后,前后有无空格都可以
2、编译器为可变参数隐含创建一个数组,在方法体中以数组形式访问可变参数
三、枚举
1、定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
2、好处:枚举可以让编译器在编译时就控制源程序中的非法值。
3、原理,(用普通类模拟)
(1)、
(2)、
4、枚举的使用
(1)元素必须处于最前
(2)SUN()可以加参数类指出使用哪一个构造方法
5、常用方法
name() ordinal() toString()
静态方法 String[] values(), valueOf()
6、交通灯的实例
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
一、重载和重写区别
重载(Overload):在同一范围中声明几个功能类似的同名函数,但是同名函数的形式参数(参数个数、类型或者顺序)必须不同,这就是函数重载。
1、同名
2、形参(个数、类型、顺序)不同。
覆写(重写 Override):
1、在继承中
2、方法名、返回值、形参(个数、类型、顺序)都必须相同
3、权限,子类重写的方法权限不能低于基类
4、异常,子类抛出的异常不能比基类大
二、可变参数
1、...只能出现在参数列表的最后,前后有无空格都可以
2、编译器为可变参数隐含创建一个数组,在方法体中以数组形式访问可变参数
public int add(int x, int ... args){ int sum = x; for(int i = 0; i < args.length; i++){ sum += args[i]; } return sum; }
三、枚举
1、定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
2、好处:枚举可以让编译器在编译时就控制源程序中的非法值。
3、原理,(用普通类模拟)
(1)、
public class Emue{ public static void main(String args[]){ WeekDay sunday = WeekDay.SUN; //不能声明WeekDay类的对象,而仅仅是将已有的对象赋值给引用变量 } } class WeekDay{ private WeekDay(){} //防止外部新建此类的对象 public final static WeekDay SUN = new WeekDay();//将此类的所有可能对象在类中声明,并设置为常量 public final static WeekDay MON = new WeekDay(); public final static WeekDay TUES = new WeekDay(); public WeekDay nextDay(){ if(this == SUN){ return MON; }else if(this == MON){ return TUES; } } public String toString(){ if(this == SUN){ return "sunday"; }else if(this == MON){ return "tuesday"; } } }
(2)、
abstract class WeekDay{ private WeekDay(){} //防止外部新建此类的对象 //将此类的所有可能对象在类中声明,并设置为常量 public final static WeekDay SUN = new WeekDay(){ return MON; }; public final static WeekDay MON = new WeekDay(){ .... }; public final static WeekDay TUES = new WeekDay(); public abstract WeekDay nextDay(); public String toString(){ if(this == SUN){ return "sunday"; }else if(this == MON){ return "tuesday"; } } }
4、枚举的使用
(1)元素必须处于最前
(2)SUN()可以加参数类指出使用哪一个构造方法
public enum WeekDay{ SUN(7),MON,TUE,WED,EHI,FRI,SAT; //元素必须处于最前 private WeekDay(){} private WeekDay(int day){} }
5、常用方法
name() ordinal() toString()
静态方法 String[] values(), valueOf()
6、交通灯的实例
public enum TrafficLamp{ RED(30){ //指出使用带参数的构造方法 public TrafficLamp nextLamp(){ return GREEN; } }, GREEN{ public TrafficLamp nextLamp(){ return YELLOW; } }, YELLOW{ public TrafficLamp nextLamp(){ return RED; } }; public abstract TrafficLamp nextLamp(); private int time; private TrafficLamp(int time){this.time = time} }
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
相关文章推荐
- 黑马程序员--Java基础加强--04.代码简化 书写规律III_数组参数【重载】【数组】【可变参数数组】【泛型可变参数数组】【个人总结】
- 黑马程序员—Java基础加强学习笔记之枚举&反射
- 黑马程序员--Java基础加强(2)-- JDK1.5新特性之可变参数,增强for,自动拆装箱,枚举
- 黑马程序员:基础加强(可变参数、增强for、枚举、javabBean、BeanUtils、注解、泛型)
- java学习笔记---Java可变参数方法重载时要注意的几个问题
- 黑马程序员_java基础加强学习之枚举
- JavaWeb学习笔记-java基础-5-可变参数
- 黑马程序员: 基础加强之静态导入,可变参数,增强for,自动装箱,享元模式,枚举
- 黑马程序员_学习笔记:11) Jdk5.0新特性:增强for循环、可变参数(...)、静态导入、枚举:关键字 enum、自动拆装箱、泛型
- Java基础加强<二>可变参数、增强for循环、基本类型的自动拆箱与装箱、枚举
- 黑马程序员_java基础加强学习笔记之注解
- java基础加强(枚举,反射,增强for循环,可变参数,自动拆箱装箱,内省)
- java学习笔记_高级篇必会(可变参数,枚举)
- 黑马程序员---java基础加强_可变参数和静态导入
- 黑马程序员_java学习日记_Java高新技术静态导入,可变参数和加强的FOR循环
- 黑马程序员 学习笔记五:JDK5之可变参数,代替某些重载的情况
- 黑马程序员--Java基础加强学习笔记之Class类、反射(Reflect)
- 黑马程序员--Java基础学习笔记【重载、数组操作】
- 黑马程序员---2015.6.22java基础笔记---Collections---Arrays---方法的可变参数---常用类介绍
- 黑马程序员_java基础加强学习笔记之(JDK1.5新特性)