java复用类_java复用类
1. toString() 每一个非基本类型都有一个toString()方法;当编译器需要从对象获取一个string时,该对象的toString()方法就会被调用。 示例: class WaterSource { private String s; WaterSource() { s = "WaterSource Constructed"; } public String toString() {return s;} public static void main(String[] args) { WaterSource w = new WaterSource(); System.out.println(w); } } 打印的结果是: WaterSource Constructed 2.继承 当创建一个类时,总是在继承。因此,除非已经明确指出要从其他类中继承,否则就是在隐式的从JAVA的标准根类Object进行继承。 继承的关键字:extends 关键字super表示超类(或者基类)的意思。因此,表达式super.scrub()将调用超类的scrub()方法。 3.初始化基类 在构造器中调用基类构造器来执行初始化,而基类构造器具有执行基类初始化所需要的所有知识和能力。 对于无参数的基类构造器,会被派生类默认调用; 对于带参数的基类构造器,派生类必须使用关键字super显示地调用,并配以适当的参数。 4.try与finally try { ... } finally { ... } 关键字try表示,下面的块(用{}括起来的代码)是所谓的保护区,这意味着它需要被异常处理。其中一项特殊的处理是无论try块怎样退出的,保护区后的 finally子句中的代码总是要被执行的。这里的finally子句表示的是“无论发生什么事,一定要执行后面跟着的块”。 5.protected关键字 protected关键字指明“就类用户而言,这是private的,但对于任何继承于此类的导出类或者其他任何位于同一个包内的类来说,它是可以访问的”。 6.向上转型 “为新的类提供方法”并不是继承技术中最重要的方面,其最重要的方面是用来表现新类和基类之间的关系。这种关系可以用“新类是现有类的一种类型”加以概括。 由于继承可以确保基类中所有的方法在到处类中也同样有效,所以能够向基类发送的所有信息同样也向可以导出类发送。 示例 class Instrument { public void play () { System.out.println("Instrument play"); } static void tune (Instrument i) { i.play(); } } public class Wind extends Instrument { public static void main(String[] args) { Wind flute = new Wind(); Instrument.tune(flute); //upcasting } } 在tune中,程序代码可以对Instrument和它所有的到处类起作用,这种将Wind引用转换为Instrument引用的动作,称之为“向上转型”。 7.继承使用 慎用继承,其使用场合仅限于你确信使用该技术确实有效的情况。到底是改用组合还是使用继承,一个最清晰的判断方法就是问一问自己是否需要从新类向基类进行向上转型。如果必须向上转型,则继承是必要的;但如果不需要,则应当好好考虑自己是否需要继承。 8.final关键字 用final关键字定义编译期常量:这种常量必须是基本类型,并且以关键字final表示。定义常量时,必须赋值。 按照惯例:既是static又是final的常量将用大写表示:定义为public,则可以被用于包之外;定义为static,则强调只有一份;定义为final,则说明它是一个常量。 当final关键字后定义的域是对象引用时,final使引用恒定不变(一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象)。然而,对象其自身确实是可以修改的。 空白final:空白final指被声明为final但又未给定初值的域。无论什么情况,编译器都确保空白final在使用前必须被初始化。但是,空白 final在关键字final的使用上提供了更大的灵活性。为此,一个类中的final域就可以做到根据对象而有所不同,却又保持其恒定不变的特性。 final参数:JAVA允许在参数列表中以声明的方式将参数指明为final.这意味着你无法在方法中更改参数引用所指向的对象。 final方法:把方法锁定,以防止任何继承类修改它的含义。 类中所以的private方法都隐式地指定为final的。由于无法取用private方法,所以就无法覆盖它。可以对private方法添加final修饰词,但这并不能给该方法增加任何额外的意义。 final类:将某个类定义为final时,表明了你不打算继承该类,而且也不允许别人这样做。 9.初始化及类的加载 一般来说,类的代码在初次使用时才加载。这通常指加载发生于创建类的第一个对象之时,但是当访问static域或者static方法时,也会发生加载。 当一个类在加载时,编译器注意到它有一个基类,则加载完该类,继续加载基类。如果基类还有其自身的基类,则继续加载基类的基类。依次类推。 类加载完成之后,根基类的static初始化会被执行,然后是下一个到处类的staic初始化被执行,依次类推。 至此,类的加载完毕,可以创建对象了。
java复用类_java复用类相关推荐
- java组合语法_JAVA复用类之组合语法的使用(附源码)
复用代码是Java众多引人注目的功能之一.但是要想成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情. 上述方法常为C这类过程型语言所使用,但收效并不是很好.正如J ...
- java filereader类_Java FileReader类
FileReader类从InputStreamReader类继承而来.该类按字符读取流中数据.可以通过以下几种构造方法创建需要的对象. 在给定从中读取数据的 File 的情况下创建一个新 FileRe ...
- java高级类_Java高级类特性(一)
权限类内同包不同包子类不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ 四.super关键字的使用 pac ...
- java 根据类名示例化类_Java即时类| from()方法与示例
java 根据类名示例化类 即时类from()方法 (Instant Class from() method) from() method is available in java.time pack ...
- java 根据类名示例化类_Java即时类| EpochSecond()方法的示例
java 根据类名示例化类 EpochSecond()方法的即时类 (Instant Class ofEpochSecond() method) Syntax: 句法: public static I ...
- java 大数类_Java大数类介绍
java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...
- java 根据类名示例化类_Java即时类| plusMillis()方法与示例
java 根据类名示例化类 即时类plusMillis()方法 (Instant Class plusMillis() method) plusMillis() method is available ...
- java 根据类名示例化类_Java LocalDateTime类| atOffset()方法与示例
java 根据类名示例化类 LocalDateTime类atOffset()方法 (LocalDateTime Class atOffset() method) atOffset() method i ...
- java 根据类名示例化类_Java MathContext类| 带示例的getRoundingMode()方法
java 根据类名示例化类 MathContext类的getRoundingMode()方法 (MathContext Class getRoundingMode() method) getRound ...
最新文章
- Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
- Ubuntu下默认使用dash而非bash
- SpringMVC的数据转换、格式化和数据校验
- 计算机视觉与深度学习 | 基于MATLAB的Vibe算法消除鬼影(代码版)
- sklearn自学指南(part56)--朴素贝叶斯
- java web登录action_JavaWeb中登陆功能
- 使用vue来开发一个下拉菜单组件(1)
- mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
- zookeeper服务端
- 从PHP门外汉---菜鸟---高手的进阶之路
- chrome 历史版本下载
- iOS 一键加入QQ群
- 秀!搭建一个永久运行的个人服务器!
- 爱宝 A-80P 打印机驱动
- 打造Android不死进程
- 火线精英手游服务器维护,4399火线精英7月4日23:00全区停机维护公告
- 2021年全网最详细的计算机二级备考攻略,看完都会过~
- 有没有比图灵机能力更强的计算模型?
- IBinder中linkToDeath的介绍
- 【SF10】| 如何构建一个胜率超过60%的短线螺纹策略(开发教程)
热门文章
- easyui数据请求两个url_easyui使用是调用两次后台请求(解决)
- mysql identifier name is too long_ORA-00972: identifier is too long 问题处理
- halcon 将数据保存到excel_Python保存数据到Excel文件的多个sheet
- mysql 5.6 分区_Mysql5.6—分区表及独享表空间
- 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)
- 线程事件--day36
- 10-30 章鱼大数据学习
- 列表和字典循环遍历时的删除问题,集合
- Velocity.js中文文档
- HDOJ2072解题报告【字典树】