03-四种访问权限 面向对象设计的2个基本问题: 如何把变动的部分与保持不变的部分区别开来? 开发者如何约定权限来修改和改进代码,并确保客户代码不会因为这些改动收到影响? Java使用访问权限修饰符来供开发人员向程序员指明可用和不可用的,以及访问权限控制等级: 包访问权限(没有修饰符关键词) public - 公开的 protected - 保护的 private - 私有的 Java中构建类库的概念以及 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #访问权限
02-封装,继承,多态 1. 封装 概念:尽可能隐藏对象的内部实现细节,控制对象的修改和访问权限 访问修饰符: private (可将属性修饰为私有,仅本类可见) get/set方法是外界访问对象私有属性的唯一通道,方法内部对属性检测和过滤 提供public公共访问方法,以保证数据可以正常录入和访问 12345678910111213141516171819202122232425262728293031 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #封装 #继承 #多态
04-abstract,static,final 为什么不能用abstract修饰属性,私有方法,构造器,静态方法,final的方法? abstract抽象: 程序中不能被new创建的?父类,抽象,不完整,不具体,不能独立存在。通过 abstract 修饰类,意为抽象类,不能new对象abstract: 抽象的,似是而非,像却又不是,具备某种对象的特征,但不完整abstract修饰类概念: 不够完整,不够具体,不能独立存在语法: abstrac 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #抽象 #静态 #final
05-interface接口 1.什么是接口Java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩容子类能力。即:Java中使用抽象类/父类表示通用属性时,每个类只能继承一个类,假如子类已经从一个父类继承了,就不能再继续继承另外的父类。但每个类可以实现多个接口,这样子类就拥有了更多的能力。 微观概念:接口是一种能力和约定。 接口的定义:代表了某种能力 方法的定义:能力的具体要求 2.接口语法API( 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #接口
06-四种内部类 1.内部类通常用来解决“多重继承”的问题。2.当希望隐藏一个类的实现,减少工程中.java文件数量,或者这个类不想被扩展时,你可以通过匿名内部类来创建一个类的对象。3.java虽然无法直接在语法层面上支持闭包,但是可以通过内部类来模拟一个闭包的程序结构。 概念:在一个类的内部再定义一个完整的类。 语法: 1234class Outer { class Inner { 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #内部类
07-hashCode与哈希冲突 1. hashCode的特性(1)HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode经常用于确定对象的存储地址; (2)如果两个对象相同, equals方法一定返回true,并且这两个对象的HashCode一定相同; (3)两个对象的HashCode相同,并不一定表示两个对象就相同,即equals()不一定为true,只能够说明这两个对象在一个散 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #hashCode #哈希冲突
08-String类和方法 字符串必须包含在一对双引号""内 声明字符串变量必须经过初始化才能使用,否则会报变量未被初始化错误 创建String s1 = “hello,world”; // 推荐String s2 = new String(“hello,world”); 拼接+连接字符串; // 字符串太长时,可以通过+号将字符串分两行显示 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #String
09-Object类和方法 1234567class Anything { // do something}// 等价于 ↓↓↓class Anything extends Object { // do something} 在Java中所有的类都直接或间接的继承了 java.lang.Object 类。Object是一个特殊的类,它是所有类的父类,是Java类中最高层的 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #Object
10-BigDecimal类和方法 不变的,任意精度的带符号的十进制数字。 位置:java.math包中 java.lang.Object – java.lang.Number —- java.math.BigDecimal 作用:精确计算浮点数 创建:BigDecimal bd = new BigDecimal(“1.0”); 方法: BigDecimal add(BigDecimal db) / 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #BigDecimal
08-String类和方法 1. String特点 字符串是常量,创建后不可改变; 字符串字面值存储在字符串池中,可以共享; JVM内存管理中:栈、堆、方法区(方法区中有常量池,常量池中嵌套了字符串池) 先来看个简单的案例: 1234567891011public class TestString { public static void main(String[] args) { String 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 02_面向对象 #JavaSE #String