资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java SE,第二讲,Java面向对象基础,一切都是对象,Java是基于C+,但是相比之下,Java是一种更“纯粹”的面向对象的程序设计语言。 Java中的对象是通过统一的对象标识符来操纵,这个标识符实际上就是对象的一个“引用”(reference)。创建对象的引用的方法: String s; 使用对象之前必须要创建类的实例: Integer i = new Integer(10);,Primitive Type(基本数据类型 ),Java中的特殊数据类型,不使用new创建。使用new创建一个很小的、简单的对象,往往不是很有效的。由于这些基本数据类型在程序中是频繁使用的,所以Java采取与C和C+相同的方法,不用new来创建基本类型的变量,而是直接创建一个变量,这个变量拥有值,因此更加高效。基本数据类型如右图:,Primitive Type(基本数据类型 ),每种基本类型所占的存储空间的大小是不变的,不随机器的硬件架构的变化而变化,这也是Java具有可移植的原因之一。 特例:String也可以作为基本类型来对待,String s = “abc”;,Java永远不需要销毁对象,对象引用的生命期在作用域的终点就结束了,因此对象无法被访问到了,这时对象所占的内存空间就成为内存中的“垃圾”。但是Java中根本不必担心内存回收的问题,内存垃圾的回收是由JVM自动完成的,从而避免了程序员因忘记释放对象的内存而产生的“内存泄漏”的问题。 Garbage Collector:简称GC,用于回收内存中的垃圾,Java中对象都是在堆上创建的。堆是在JVM启动的时候分配的,它的空间由GC控制。,面向对象编程的基本概念,类 类是描述一组相似对象共有特征的抽象。 类中含有属性和方法 对象 根据一个类生成的所谓“实例” 对象的生成 类名 对象名 = new 类名();,面向对象编程的基本概念,访问对象的属性 对象名.属性名 访问对象的方法 对象名.方法名(实际参数值),类的基本结构,符合Java语言规范的类的基本结构 class 类名 属性的定义; 构造方法定义; 行为定义;/被定义为一些普通方法 ,Demo:Car.java, UseCar.java,定义类的规范化(一),强制性要求 不能用public关键字同时修饰两个以上的类 public关键字只能修饰跟源文件名相同的类 在Java语言规范中,所有的关键字每一个字母都是小写的 程序入口方法的格式: public static void main(String args) /your code ,定义类的规范化(二),推荐性要求 每个Java源文件只定义一个类,不要把多个类同时定义在一个Java源文件中 如有必要可考虑给每个类都定义一个测试用的程序入口方法 类名字的每个单词的首字母应该大写,同时尽量取有意义的类名字 变量名字的第一个单词的首字母应该小写,从第二个单词以后的首字母都大写,要取有意义的变量名字 编译时常量名字每个单词的字母都大写,并且每个单词之间用下划线隔开 static final CHANG_LIANG 方法名字的第一个单词的首字母应该小写,从第二个单词以后的首字母都大写,要取有意义的方法名字,Constructor (构造方法、构造函数、构造器),目的 构造类的实例,让实例处于我们所要求的状态,Constructor,要注意以下几点 必须跟定义的类同名 不能有返回值,就算是viod也不行 正常情况通过new关键字来调用 在同一个类中可以定义多个构造方法 同一个类中定义的构造方法之间可以通过this关键字来互相调用,同时必须放在第一行代码来调用 当我们没有给类定义构造方法的时候,编译器会提供一个不带参数的构造方法 如果我们在类定义了构造方法,那么编译器就不会再提供默认的构造方法了,Overloading(方法重载),概念 在同一个类中,如果多个方法的方法名相同,我们就称这些方法互相重载了。 如何来重载方法 不能用方法的返回类型不同来重载方法。 可以根据方法的参数个数不同来重载方法。 当方法的参数个数相同的情况下,我们可以根据参数类型不同来重载方法。 当方法的参数个数,参数的类型都相同的情况下,我们通过参数的顺序不同来重载方法。,Demo:Tree.java,Overloading(方法重载),重载方法的应用场合 重载普通方法没有任何意义 需要定义多个构造方法的时候,就得用到重载构造方法,this关键字,概念 代表当前对象的引用 应用场合 常用来区分局部变量和实例变量 当我们需要取得当前对象的引用时,常常会用this关键字来代表,this关键字使用示例,方法中调用this 在方法的内部获得对当前对象的引用(reference)。这个引用是由编译器传入:this。 如果在方法内部调用同一个类的方法,就不必使用this,直接调用即可。 static方法中不能调用this。,Demo:Person.java,this关键字使用示例,构造方法中调用this 尽管你可以用this 调用一个构造方法,但你却不能用相同的方法调用两个构造方法。此外,你必须将构造方法调用置于最起始处,否则编译器会报错。 除构造函数之外,编译器禁止你在其他任何方法中调用构造函数。,Demo:Flower.java,变量初始化,类的变量初始化 初始化的顺序 static变量(只在class 加载时初始化一次) 成员变量(实例变量) 构造方法 缓式初始化(方法调用时,方法内的变量初始化),Demo:OrderOfInitial.java,Demo:InitialValues.java,数组,数组: 相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。 数组是通过方括号索引操作符 来定义和使用的。要定义一个数组,只需在类型名后加上一对空方括号即可。 类型相同,长度固定。 基本数据类型数组初始化 int a1 = 1, 2, 3, 4, 5 ; 对象数组初始化 ArrayIndexOutOfBoundsException,Demo:Arrays.java, ArrayInit.java,Thank You! Q&A Time,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号