java疯狂讲义
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本数据类型 byte short int long
包装类 Byte Short Integer Long
基本数据类型 char float double boolean
包装类 Character Float Double Boolean
如果需要自定义类实现自我描述的功能,需要重写该方法 public String toString()
类成员: static关键字修饰的成员就是类成员,不能修饰构造器,static修饰的类成员属于整个类 使用时应通过类来访问而不是实例,避免理解错误
单例类: 一个类只能创建一个实例。 定义有如下要求: 1)该类的构造器用private修饰。 2)需要提供一个public方法作为该类的访问点,用于创建该类的对象,且该方法必须用static修饰 3)必须缓存已经创建的对象,否则无法知晓是否曾经创建过对象
该数组变量来访问数组元素。 数组长度可变错觉的例子看一下
第5章 面向对象(上)
java语言通过new来调用构造器,返回类的实例 类中,static修饰的成员不能访问非static修饰的成员 abstract和final最多只能出现其一,他们可以与static组合起来修饰方法
局部变量定义后,必须经过显式初始化才能调用,
java疯狂讲义 第一章 java概述
J2ME移动存储设备和信息家电等有限存储设备 J2SE:核心和基础 J2EE:企业应用开发(应用最广泛)
一个java源文件中最多定义一个public类,且文件名必须与该类名相同
环境变量的内容中的路径最好不要有空格出现,很有可能出错
垃圾回收机制的优缺点,p20
编写java程序的基本原则:对于不再需要的对象,不要再引用它们。
Person personObj =(Person)obj; if(this.getldStr().equals(personObj.getldStr())) {
return true; } } return false; } 正确重写equals需要注意一下几点: 1)自反性 2)对称性 3)传递性 4)一致性 5)对于任何不适null的x,x.equals(null)一定返回false
==与equal的区别 ==用于数值的比较,如果希望采用自定义的相等标准,可以采用重写equals的方法来实现(String也已经重写了equals
方法) 较为成熟的例子是这样的 public boolean equals(Object obj) {
if(this == obj) {
return true; } if(Obj!=null && Obj.getClass() == Person.class) {
访问控制符
同一个类中 同一个包中 子类中 全局范围内
private O
default O O
protected O O O
public O O O O
符合JAVABEAN规范的类:每一个属性都有private修饰,且为每个属性都提供了public修饰set和get方法。这样总是 一个封装良好的类。
java引用变量有两个类型:一个是编译时的类型:声明该变量时使用的类型 一个是运行时的类型:实际赋予该变量的类型决定
引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时可以执行它运行时类型所具有的方法。 与方法不同的是,对象的属性不具有多态性,系统总是访问它编译时类所定义的属性
基本类型转换只能在数值类型(数字,字符)之间进行,但数值与布尔之间不能转换 引用类型的转换只能把一个父类变量转换成子类类型。如果试图把一个父类实例转换成子类类型,则必须这个对象实 际上是子类实例才行(即编译类型为父类实例,运行类型是子类类型),否则会发生classcaseexception异常。但是, 子类对象赋予父类引用变量总是可witch语句后面控制表达式的数据类型只能是整型(long除外),不能是Boolean型 选择循环变量时,通常使用i,j,k来作为环境变量 break的使用看一下例子,continue的用法相似,标识必须在需要处理的循环前标识
数组相关知识: 数组也是一种类型,他本身是一种引用类型 最好使用tpye[] arrayName foreach循环,并不改变数组元素的值,因此不要对foreach循环变量进行赋值 数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当该引用指向有效内存后,才可以通过
创建一个对象的过程:为对象的所有实例属性分配内存(前提是该类已经被加载过了) ——>先执行初始化块或者是声明属性时指定的初始值 ——>再执行构造器里指定的值
静态初始化块是类相关的,不能访问非静态成员
第6章 面向对象(下)
final,abstract,interface的使用方法 基本数据类型与包装类
在强制转换之前,使用instanceof运算符来判断是否可以转换成功。例如 if(sai instanceof String) {
String str =(String)sai; }
继承和组合的使用要判断类之间的关系是is-a ,还是 has-a
初始化块只在创建java对象的时候隐式执行,一般只定义一个初始化块(最多两个)
final修饰符 final成员变量必须显示初始化 final修饰基本类型和引用类型的变量的区别:基本类型不可变,对象可变(final所引用的地址不变即可) final方法:不可以被重写 final类:不可以有子类
不可变类:穿件该类的实例后,该实例的属性是不可以改变的,java提供的8个包装类和ng.String类都是不可变类
第二章 理解面向对象
SA(结构化分析)----->SD(结构化设计)----->SP(结构化编程) 自顶向下,逐步求精,模块化 顺序结构,选择结构,循环结构(当型结构,直到型循环) 面向对象的基本特征:封装,继承,多态 提高类的内聚性,降低对象之间的耦合性
第三章 数据类型与运算符
所有变量先声明,后使用 java所有关键字都是小写的,TRUE,FALSE,NULL都不是java的关键字 字符串不是基本数据类型,是一个类,也就是一个引用数据类型