ImageVerifierCode 换一换
格式:PDF , 页数:27 ,大小:519.07KB ,
资源ID:3210267      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3210267.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java李兴华学习笔记之面向对象基础.pdf)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java李兴华学习笔记之面向对象基础.pdf

1、 北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(1)页 共(27)页 E-Mail: 1、课程名称:面向对象(基础)、课程名称:面向对象(基础)2、知识点、知识点 2.1、上次课程的主要知识点、上次课程的主要知识点 1、Java 可移植性原理:依靠 JVM 所有的*.java 文件经过 javac 编译之后形成*.class 文件,之后在 JVM 上解释执行,由于对于不同的操作系统有不同的 JVM,所以程序只要有 JVM 就可以执行,那么就可以在不同的操作系统平台上运行所有的 java 程序。2、public class 和 class 的区别

2、使用 public class 声明的类必须与文件名称相同,如果使用 class 声明的类可以与文件名称不同,但是执行的时候一定要执行已经生成的*.class 文件。在一个*.java 的文件之中,只能存在一个 public class,但是可以同时存在多个 class 的定义,而且根据不同的 class声明,可以自动的划分成不同的*.class 文件。只要是定义类则要求每个单词的首字母大写 北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(2)页 共(27)页 E-Mail: 3、Java 数据类型划分:基本数据类型:都是一个个具体的值|-数值型:

3、表示具体的数字,所有的整数默认情况下都是 int,所有的小数都是 double 型的|-整数型:byte、short、int、long|-浮点型:float、double|-字符型:char,使用“”,而且在中文环境下可以设置一个中文文字,采用的是 UNICODE 编码|-布尔型:boolean,有 true 和 false 两种取值 引用数据类型:是靠着内存关系存在的,例如:类、接口、数组 4、方法:是一段可以重复调用的代码段。如果一个方法要由主方法直接声明,则格式:public static 返回值类型 方法名称(参数列表)重载:方法名称相同,但是参数的类型或个数不同 只要是定义方法,则命

4、名规范是:第一个单词的首字母小写,之后每个单词的首字母大写,例如:printInfo()5、数组:数组属于引用数据类型,所以一定要划分出内存:栈和堆两块内存 数组的定义格式:|-格式一:数据类型 数组名称=new 数据类型长度;|-格式二:|-声明数组:数据类型 数组名称=null;在栈内存中开辟|-开辟数组:数组名称=new 数据类型长度;在堆内存中开辟指定大小的数组 数组的静态初始化:数据类型 数组名称=值;取得数组长度:数组名称.length 数组可以使用方法接收,实际上这一点与内存的关系传递是一样的。数组操作相关的方法:java.util.Arrays.sort(数组名称)、Syste

5、m.arraycopy()数组拷贝 2.2、本次预计讲解的知识点、本次预计讲解的知识点 1、面向对象的基本概念 2、类与对象的关系、引用传递 3、类封装性的操作 4、构造方法的定义及使用 5、String 类的使用 6、this 关键字的作用 3、具体内容、具体内容 3.1、面向对象的概念(了解)、面向对象的概念(了解)面向对象算是一种比较新的软件设计的方法,在没有面向对象之前使用的是面向过程(是针对于一个问题解决问题,如果修改的话,则整个设计都要修改),面向对象是针对于一类问题来进行解决,某一局部的修改不影响其他位置的变化。在面向对象中主要分为以下三个方面:OOA:面向对象分析。OOD:面向

6、对象设计,根据分析的结果使用工具完成设计。北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(3)页 共(27)页 E-Mail: OOP:完成具体的功能实现,代码编写。在面向对象中,实际上还存在着三个主要的特性:封装性:保证对外部不可见。继承性:继续发扬广大;多态性:就属于变来变去;3.2、类与对象(、类与对象(重点重点)在整个的面向对象之中,实际上最重要的就是类与对象的关系,也就是说面向对象完全是围绕类展开的。3.2.1、类与对象的关系、类与对象的关系 既然类和对象是核心的基础部分,那么两者之间存在着怎样的关系呢?类:类是一组共性的产物,是同一类事

7、物的集中表现。对象:是一种个性的体现,是个体的产物。对象中的所有操作行为都由类决定,所以,在使用中只要是类定义出的操作对象都可以应用,而如果类没有定义出的操作,对象肯定无法使用。类是对象的模板,对象是类的实例类是对象的模板,对象是类的实例 3.2.2、类与对象的使用、类与对象的使用 在 Java 中可以使用 class 关键字来定义一个类,在类中有两大组成部分:属性(变量)、方法。class Person/定义类 String name;/表示一个人的姓名 int age;/表示一个人的年龄 public void tell()/表示一个功能,说话 System.out.println(姓名:

8、+name+,年龄:+age);在本程序中就定义出了一个类,里面有两个属性:name、age,和一个方法:tell()。在 tell()方法将进行内容的输出。一个类定义完成之后肯定无法直接使用,需要依靠对象进行操作,那么下面给出对象定义格式:类名称 对象名称=new 类名称();一旦有了对象之后就可以通过“对象.属性”或者是“对象.方法()”进行类的调用:class Person/定义类 String name;/表示一个人的姓名 int age;/表示一个人的年龄 public void tell()/表示一个功能,说话 System.out.println(姓名:+name+,年龄:+ag

9、e);public class OODemo01 北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(4)页 共(27)页 E-Mail: public static void main(String args)Person per=new Person();/产生对象 per.name=张三;/设置 name 属性的内容 per.age=30;/设置 age 属性的内容 per.tell();/调用方法输出 ;那么下面来进一步分析以上代码的每一步操作:对象产生:Person per=new Person();既然存在了关键字 new,而且类又属于引用

10、数据类型,那么肯定现在就开辟了相应的栈及堆内存空间,而且以上的代码可以拆分成两步:|-声明对象:Person per=null;在栈内存中声明|-实例化对象:per=new Person();开辟对应的堆内存空间 而且一定要记住的是,如果一个对象没有被实例化而直接使用的话,将出现以下的问题:Exception in thread main java.lang.NullPointerException 表示空指向异常,因为没有对应的堆内存空间,而且此种异常肯定会经常出现,那么以上的代码实际上可以表示成以下的内存关系。当通过“对象.属性”实际上表示的就是每一个对应的堆内存空间的属性的操作。那么,如

11、果现在按照以上的规律产生第二个对象肯定是不会互相影响的,因为只要存在了关键字 new 就表示永远会开辟新的内存空间。class Person/定义类 String name;/表示一个人的姓名 北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(5)页 共(27)页 E-Mail: int age;/表示一个人的年龄 public void tell()/表示一个功能,说话 System.out.println(姓名:+name+,年龄:+age);public class OODemo03 public static void main(String

12、 args)Person per1=null;Person per2=null;per1=new Person();/实例化 per2=new Person();/实例化 per1.name=张三;per1.age=30;per2.name=李四;per2.age=20;per1.tell();per2.tell();将以上的代码再次形成内存关系图:每一个对象拥有各自的内存空间,所以不会互相影响,而且可以发现一点,每一个对象中实际上保存的只是属性,北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(6)页 共(27)页 E-Mail: 并没有保存方法,

13、因为所有的方法都是每个对象所共同拥有的,保存在全局代码区之中。栈内存保存的是对堆内存的引用地址,而堆内存中保存的是每一个对象所拥有的属性,而全局代码区之中保存的是所有类中的方法,表示公共调用。3.2.3、对象的引用传递、对象的引用传递 在数组中本身也属于引用传递,而且发现所谓的引用传递指的就是一个堆内存空间,可以同时被多个栈内存所指向,那么类本身也是一样的,即:一块堆内存可以同时被多个对象所同时指向。public class OODemo04 public static void main(String args)Person per1=null;Person per2=null;per1=n

14、ew Person();/实例化 per2=per1;/引用传递 per1.name=张三;per2.age=20;per1.tell();此就称为对象的引用传递,可以发现就是使用内存表示出关系。但是,在使用引用传递的过程中也会存在一种问题,如下代码:北京北京 MLDN软件实训中心软件实训中心 联系电话:联系电话:010-51283346 第(7)页 共(27)页 E-Mail: public class OODemo05 public static void main(String args)Person per1=null;Person per2=null;per1=new Person(

15、);/实例化 per2=new Person();/实例化 per1.name=张三;per1.age=30;per2.name=李四;per2.age=20;per2=per1;per2.tell();现在的某些空间已经不再使用了,所以就成为了垃圾,只要是垃圾就要等待系统进行垃圾收集,在 java 中使用 GC完成垃圾收集的操作,由于垃圾在程序中会占用系统的资源,所以在开发中一定要尽量避免过多的垃圾产生。3.3、封装性(、封装性(重点重点)封装性属于面向对象的第一大特性,所谓的封装性就是指类内部的定义对外部不可见。范例:范例:观察以下程序的问题 北京北京 MLDN软件实训中心软件实训中心 联

16、系电话:联系电话:010-51283346 第(8)页 共(27)页 E-Mail: class Person/定义类 String name;/表示一个人的姓名 int age;/表示一个人的年龄 public void tell()/表示一个功能,说话 System.out.println(姓名:+name+,年龄:+age);public class EncDemo01 public static void main(String args)Person per=new Person();per.name=张三;per.age=-30;per.tell();此时,将年龄设置成-30 岁发现没有任何的错误,因为在整型的表示范围之中,是允许设置成负数的,那么在这种情况下,语法没有错,但是从实际来看肯定是错误的,因为没有任何一个人的年龄是-30 岁。那么,会造成这种问题主要就是因为现在类中的属性可以被外部直接访问,那么如果希望属性或方法不希望被外部如果希望属性或方法不希望被外部所访问的话,则可以使用所访问的话,则可以使用 private 关键字声明关键字声明。class Person/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1