Java的面向对象基础教程
面向对象程序设计(Java)实验指导书
10 信息管理与信息系统 专业
雷金娥编 2012 年 9 月
目录
实验一 Java Application 程序的编辑、编译和运行 ..................................... 2 实验二 Java 程序设计基础.................................................................................. 4 实验三 类的封装 ................................................................................................... 5 实验四 类的继承 ..................................................................................................... 6 实验五 类的多态 ..................................................................................................... 8 实验六 接口与实现接口的类 ............................................................................. 12 实验七 图形用户界面设计 ................................................................................. 14 实验八 线程设计 ................................................................................................. 16 实验九 输入/输出流与文件操作......................................................................... 18 实验十 数据库应用设计 ..................................................................................... 20
Java面向对象基础总结
面向对象基础总结篇一、几个基本概念1、面向对象的编程和面向过程编程参考lesson4中的面向过程与面向对象介绍.docx结构化程序设计:主张按功能分析系统需求,主要原则为:自顶向下、逐步求精、模块化、结构化。
一般步骤:结构化分析(SA)→结构化设计(SD)→结构化编程(SP)结构化程序设计里最小的程序单元是函数结构化设计需要采用自顶向下的设计方式,在设计阶段就需要考虑每个模块应该分解成哪些子模块,每个子模块又分解成哪些更小的模块……以此类推,直至将模块细化成一个个函数。
面向对象程序设计:使用类、对象、继承、封装、消息等基本概念进行程序设计。
它以现实世界中客观存在的事物(对象)出发来构造软件系统,并在构造中尽可能使用人类的自然思维方式,强调直接以现实世界中的事物(对象)为中心来思考,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的类,作为系统的基本构成单元,这使得软件系统可以直接反映客观世界,并保持客观世界中事物及其相互关系的本来面貌。
2、类和对象:对象是类的实例,类是对象的模板3、成员变量和局部变量成员变量在整个类的内部都有效。
局部变量只在方法内部有效。
二、方法1、方法的所属性2、方法的组成:方法的返回值类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回值类型或者是参数的名字不同,也不能称为方法的重载,必须是参数个数或者是参数类型不同。
3、方法和重载和重写方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
方法的返回值类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回值类型或者是参数的名字不同,也不能称为方法的重载,必须是参数个数或者是参数类型不同。
三、构造方法(构造器)1、特点:与类名相同并且没有任何显示的返回类型。
2、作用:完成对象的初始化3、何时被调用:在创建对象的时候被自动调用(new )4、构造方法的重载:构造方法可以重载是指一个类中有多个方法有相同的名字但这些方法的参数必须不同即或者是参数的个数不同或者是参数的类型不同5、父类和子类的构造方法先创建父类的构造方法,在创建子类对象的时候,子类会先主动调用父类的无参数的构造方法,再调用自身的构造方法,若父类构造方法有参数,子类必须使用super。
廖雪峰Java教程学习笔记(一)——Java程序基础
廖雪峰Java教程学习笔记(⼀)——Java程序基础(⼀)Java程序基本结构Java是⾯向对象的语⾔,⼀个程序的基本单位就是class。
在class内部,可定义若⼲⽅法。
类名要求:类名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼤写字母开头⽅法名要求:⽅法名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼩写字母开头(⼆)变量和数据类型在Java中,变量分为基本类型的变量和引⽤类型的变量。
例如:int x = 1; //定义了⼀个整型int类型的变量,名为x,初始值为1变量的⼀个特点是可以重新赋值,也可以赋值给其他变量。
值得注意的是,在第⼀次定义变量时需要指定变量类型,⽽第⼆次重新赋值时,该变量已经存在了,不⽤再指定变量类型。
基本数据类型整数类型:byte, short, int, long浮点数类型:float, double字符类型:char布尔类型:boolean计算机内存的最⼩存储单元是字节(byte),⼀个字节就是⼀个8位⼆进制数,即8个bit,字节的⼆进制表⽰范围为00000000~11111111,换算成⼆进制是0~255,换算成⼗六进制是00~ff。
Java基本数据类型占⽤的字节数类型byte short int long float double char字节 1 2 4 8 4 8 2定义基本数据类型时的注意事项整型最⾼位的bit表⽰符号位(0表⽰正数,1表⽰负数)long型的结尾需要加L(int l = 9000000000000000000L;)float型的结尾需要加f(float f = 3.14f;)char类型使⽤单引号‘ ’,且仅有⼀个字符,字符串使⽤双引号“ ”引⽤类型常量:定义变量的时候,如果加上final修饰符,这个变量就变成了常量。
常量名通常全部⼤写var关键字:省略变量类型可使⽤var关键字(三)整数运算Java的整数运算遵循四则运算规则,可以使⽤任意嵌套的⼩括号。
Java基础教程(第3版)_第4章_类与对象
如果有一个类是 public 类 , 那 么源文件的名字必须与这个类的 名字完全相同,扩展名是.java。编 译源文件将生成多个扩展名 为.class的字节码文件,每个字节 码文件的名字与源文件中对应的 类的名字相同,这些字节码文件 被存放在与源文件相同的目录中 。
2018/11/2
第 14 页
例子3 例子3中有两个Java源文件Example4_3.java和Rectangle.java,其 中Rectangle.java含有Rectangle类、Example4_3.java含有Circle类和 主类。程序运行效果如图4.5。
构造方法和对象的创建密切相关 。
2018/11/2
第 16 页
4.3.1 构造方法
构造方法是一种特殊方法,它的名字必须与它所在的类的名 字完全相同,而且没有类型。 允许一个类中编写若干个构造方法,但必须保证他们的参数 不同,即参数的个数不同,或者是参数的类型不同。
需要注意的是 ( 1) 如果类中没有编写构造方法, 系统会默认该类只有一个构造方法, 该默认的构造方法是无参数的,且方 法体中没有语句。 ( 2 )如果类里定义了一个或多个构 造方法,那么 Java 不提供默认的构造 方法 。
4.1.1
例子1 一个能输出圆的面积的 Java应用程序。
public class ComputerCircleArea { public static void main(String args[]) { double radius; //半径 double area; //面积 radius=163.16; area=3.14*radius *radius; //计算面积 System.out.printf("半径是%5.3f的园的面积:\n%5.3f\n",radius,area); } } 事实上, 如果其他Java应用程序也想计算圆的面积,同样需要知道计算 圆面积的算法,即也需要编写和这里同样多的代码。 现在提出如下问题: 能否将和圆有关的数据以及计算圆面积的代码进行封装,使得需要计 算圆面积的Java应用程序的主类无需编写计算面积的代码就可以计算出圆的 面积呢?
Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理
《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。
Java程序设计基础-面向对象
访问修饰符名称
说明
public
可以被任何类访问
可以被同一包中的所有
protected
类访问
可以被所有子类访问
private
只能够被当前类的方法 访问
default(无访问修饰符)
可以被同一包中的所有 类访问
备注
子类没有在同一包中也 可以访问
如果子类没有在同一个 包中,也不能访问
在继承的体系中,访问看类型,调用看对象,在案例56中,当一个Crucian对象的类型被定义成Fishes时,这个 对象只能访问Fishes所拥有的属性和方法,但是实际方法 调用则会到该对象的定义类中查找,如果该方法在这个对象 的类中定义了,则会调用这个方法,否则调用Fishes类中 定义的该方法。从案例5-6的toString()方法的输出就可以 得出该结论。
图5-2 文件中的包结构
在开发的过程中,使用恰当的包结构、包名称和类 名称,可以让自己和其他开发人员快速地了解项目并且 使用你的类。所以,平时要培养这种命名思想,合理地 命名包和类名。
2.访问修饰符
在Java中有4种访问修饰符:public、protected、 private和default,这4种访问修饰符的控制范围是不 同的,如表5-1所示。
通过表5-1可知,当访问修饰符是public的时候,所有 的类都可以访问,就是说这是完全公开的;当用protected 修饰的时候只能被同包下的类和子类所访问(子类的概念在 5.4节中会详细介绍);如果是使用private,则只有当前类 可以访问;对于没有修饰符限制的,我们称之为缺省修饰符, 这种方法或者属性只能被本包内的其他类所使用,如果其子 类不在本包内,也不可以使用。
Java基础课件-面向对象程序设计PPT
Set接口
无序、不可重复的集合, HashSet、TreeSet等实现类
Map接口
键值对形式的集合, HashMap、Hashtable等实现 类
迭代器和遍历集合
1
增强fo r循环
2
简化集合遍历的语法,遍历数组和集
合
3
迭代器模式
通过迭代器访问集合元素,实现集合 的遍历
集合遍历算法
Java 8引入的Stream API提供丰富的 集合遍历和处理方法
多线程编程
多线程编程可以提高程序的效率和响应性。我们将探索Java提供的多线程机 制,学习线程的创建、同步和互斥等关键概念。
Java基础课件-面向对象程 序设计PPT
本课件旨在介绍Java基础知识和面向对象程序设计的概念。我们将深入讨论 Java类与对象、封装、继承、多态,以及其他关键主题,一起来学习吧!
Java基础概述
1 Java语言特点
简洁、面向对象、可移 植、高性能
2 开发环境准备
JDK安装、IDE选择、 环境变量配置
代码分析、编译器指令、 配置文件生成等
通过元注解为注解添加 元数据和其他信息
Java字符串和日期时间处理
字符串处理
字符串连接、分割、截取等常 用操作
日期时间处理
日期格式化、获取时间戳、计 算日期差等
正ห้องสมุดไป่ตู้表达式
文本模式匹配和替换的强大工 具
Java集合框架
List接口
有序、可重复的集合, ArrayList、LinkedList等实现 类
构造方法
对象实例化时执行的特殊方法
成员变量和成员方法
1
成员变量
在类中定义的属性,代表对象的状态
Java基础案例教程第4章 面向对象(下)
• 一个类通过implements关键字实现接口时,可以实现多个接口,被实现的多个接口
之间要用逗号隔开。具体示例如下:
4.3 抽象类和接口
• 一个接口可以通过extends关键字继承多个接口,接口之间用逗号隔开。具体示例如
下:
• 一个类在继承另一个类的同时还可以实现接口,此时,extends关键字必须位于 implements关键字之前。具体示例如下:
接下来通过一个案例来学习子类是如何继承父类的,请查看教材文件 4-1。
4.1 类的继承
在类的继承中,需要注意一些问题,具体如下:
1.在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能
有多个类可以继承一个父类,例如下面这种情况是允许的。
☞点击查看本小节知识架构
抽象类和接口
☞点击查看本小节知识架构
USB接口程序设计 多态
☞点击查看本小节知识架构
模拟物流快递系统程序设计 异常(Exception)
☞点击查看本小节知识架构
访问控制
知识架构
4.5 异常(Exception)
什么是异常 try…catch和finally throws关键字 运行时异常与编译时异常 自定义异常
案例代码
接下来通过一个案例来学习接口的使用,请查看教材文件4-11。
4.3 抽象类和接口
为了加深初学者对接口的认识,接下来对接口的特点进行归纳,具体如下:
• 接口中的方法都是抽象的,不能实例化对象。
• 接口中的属性只能是常量。
• 当一个类实现接口时,如果这个类是抽象类,则实现接口中的部分方法即可,否则 需要实现接口中的所有方法。
4.1 类的继承
重写父类方法
在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要
Java面向对象详解
Java面向对象详解前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学过的基础知识的想法。
一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵懵懂懂,后来实践的多了,有些东西才慢慢清楚;二是经过一定的实践之后,反过头来再去学习一些基础东西才能够理解的更透彻;三是有些东西基础但是确很重要,是值得好好搞一搞的。
1、面向对象面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。
从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。
2、对象对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
一个对象由一组属性和对这组属性进行操作的一组服务组成。
类的实例化可生成对象,一个对象的生命周期包括三个阶段:生成、使用、消除。
当不存在对一个对象的引用时,该对象成为一个无用对象。
Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。
当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。
3、类类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。
在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性和方法两个主要部分。
Java中的类实现包括两个部分:类声明和类体。
类声明[public][abstract|final] class className [extends superclassName] [implementsinterfaceNameList]{……}其中,修饰符public,abstract,final 说明了类的属性,className为类名,superclassName为类的父类的名字,interfaceNameList为类所实现的接口列表。
Java程序设计基础 第5章 教案
做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。
课程
说明
【课前说明】
本章主要讲解面向对象的知识。首先介绍了Java中包和访问修饰符的概念,之后介绍了类的概念。接着介绍了封装、继承和多态的概念。封装包含两个层面,属性的封装和方法的封装(类也是一种形式的封装),属性的封装是让属性隐藏起来,只能通过特定方式获取和修改,方法的封装则是将方法的实现隐藏起来,将方法名称暴露出去。一个对象可以是多种类型就是多态。本章还介绍了重写和重载,重写是覆盖父类或实现接口中某个方法的方法体,但是方法签名不变,重写使用@Override注解注释;重载是指可以定义多个重名方法,但这些重名方法的方法签名是不同的,也就是说,传入的参数类型或者个数是不相同的。
Java程序设计基础
第5章面向对象
课程名称
Java程序设计基础教程
(慕课版)
项目名称
面向对象
任务名称
面向对象
课时
6
项目性质
□演示性□验证性□设计性√综合性
授课班级
授课日期
授课地点
教学目标
能力目标:
1.具备使用对象的封装、继承和多态解决问题的能力
2.具备使用掌握抽象类和接口解决问题的能力
3.具备使用掌握重写和重载解决问题的能力
总结
评价
通过学习,学生能够掌握Java中包、访问修饰符、类的概念,封装、继承和多态的概念的具体用法。
本节课主要运用案例教学法,通过对面向对象深入理解,掌握封装、继承和多态的基本特点,深入探讨封装、继承和多态的使用方法,通过实例的方法加强重载和重写的理解,达到能够独立熟练运用封装、继承和多态来解决实际问题的能力。教学评价方式以小组为单位,以完成案例的质量为评价标准,形成任务驱动,小组协作,质量与速度并存的课堂评价方式 ,促进学生的自主、创新学习的方式 。
Java入门教程
1.2 Java语言的特点
Java语言适用于Internet环境,是一种被广泛使用的网络编程语言,它具有如下的一些特点:
简单
Java语言的语法规则和C++类似,但Java语言取消了指针和多重继承,统一使用引用来指示对象(C++中有两种形式,实际上是两种产生对象的途径,而Java中只有一种),通过自动垃圾收集免去了程序设计人员对于内存块的释放工作。
为使代码尽可能清晰合理、简明流畅提供了一种方法。
为获得如下两点益处提供一种解释环境:
提高开发速度──消除编译─链接—装载—测试周期;
代码可移植性──使操作系统能为运行环境做系统级调用。
为运行不止一个活动线程的程序提供了一种方式。
通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。
基于以上的认识,一个运行时(动态)的具体系统或事物,是由几个更小的具体事物构成(极端的事物就是一个简单的属性数据),它们是不断发生变化的。如果对事物这一概念进行了有效的抽象,那么问题就迎刃而解。
首先,将任何一个具体的事物称为对象(Object),它的极端情形就是过去的变量;事物是分类的,每一类事物都具有统一的属性和行为,即类型——抽象数据类型,简称为类(Class);行为既然是过程,那么就抽象成函数,命名为方法,以示区别。
Java编程语言的句法与C++的句法相似,语义则与Small Talk TM的语义相似。Java编程语言可被用来创建任何常规编程语言所能创建的应用程序。
设计Java编程语言的主要目标是:
《Java面向对象课件(含思政课)》
1
IO流的分类
了解IO流的分类和基本原理,包括字
文件读写操作
2
符流和字节流。
学习如何使用IO流进行文件的读取和
写入操作,实现数据的持久化。
3
流的连接和处理
掌握如何连接多个流,以及如何处理 流中的数据,提高程序的效率和可扩 展性。
网络编程的基础知识和Socket编程
介绍Java网络编程的基础知识和Socket编程,学习如何实现网络通信和处理网络数据。
《Java面向对象课件(含 思政课)》
通过本课件,您将掌握Java面向对象的基本概念,了解类和对象的关系与区 别,学习封装、继承、多态的概念与实现,以及接口和抽象类的使用与区别。 让我们一起开始这个精彩的学习旅程吧!
Java面向对象的基本概念
深入探索Java面向对象的基本概念,包括类、对象、属性、方法等核心要素,以及面向对象编程的优点 和应用场景。
类与对象
了解类和对象之间的关系和区 别,以及如何定义和使用类和 对象。
继承
封装
学习继承的概念和实现,掌握 继承的作用和继承层次的设计。
探索封装的概念和实现方法, 了解如何保护数据和隐藏内部 细节。
接口和抽象类的使用与区别
深入研究接口和抽象类的使用和区别,学习如何利用接口和抽象类实现多态性和代码复用。
1
异常处理的基本概念
了解异常的定义、分类和异常处理的基本原则。
2
捕获和处理异常
学习如何使用try-catch语句捕获和处理异常,以及常见的异常处理技巧。
3
异常处理的应用实例
通过实际案例演示异常处理的具体应用,加深对异常处理机制的理解。
Java中的集合类和常用数据结构
介绍Java中的集合类和常用数据结构,学习如何使用它们存储和操作数据,提高程序的效率和灵活性。
Java基础入门教程(适合所有初学者)
java 入门学习大全来源:QQ群418355531获取更多资料可加群[java 入门培训-java 入门试学7天] 第1章 Java语言概述与面向对象思想 11.1 Java语言的发展 11.1.1 Java语言的产生11.1.2 Java语言的发展11.2 Java语言的特点 21.3 面向对象与面向过程的差异 31.3.1 面向过程思想回顾 41.3.2 面向对象思想介绍 41.4 面向对象程序设计中的主要概念和特征 41.4.1 主要概念 51.4.2 主要特征 5*1.5 Java与C++的差异 51.6本章小结 5习题 5第2章 Java语言开发环境 62.1 JDK 62.1.1 JDK的简介62.1.2 JDK的构成62.1.3 JDK的使用62.2 IDE 82.2.1 IDE简介82.2.2 JBuilder 92.2.3 Eclipse 92.2.4 相关资源92.3 Project管理92.3.1 Project的含义92.3.2 可行的Project组织模式 92.3.3 主要开发工具的Project目录102.4 本章小结 10习题10第1章 Java语言概述与面向对象思想1.1 Java语言的发展1.1.1 Java语言的产生上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。
该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。
后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。
随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。
1994年,Gosling用Java开发了一个实时性较高、可靠、安全、有交互功能的新型Web浏览器,它不依赖于任何硬件平台和软件平台。
这种浏览器名称为HotJava,并于1995年同Java语言一起,正式在业界对外发表,引起了巨大的轰动,Java的地位随之而得到肯定。
自考Java程序语言设计(一)第四章面向对象程序设计讲义
第四章面向对象程序设计目录第一节类和对象第二节定义方法第三节静态成员第四节包装类01 类和对象类的定义类的定义也称为类的声明。
类中含有两部分元素,分别是数据成员变量和成员方法。
类定义的一般格式如下。
修饰符 class 类名 [extends父类名]{修饰符类型成员变量1;修饰符类型成员变量2;……修饰符类型成员方法 1 (参数列表){方法体}……}其中,class是关键字,表明其后定义的是一个类。
含有class的这一行称为类头,后面大括号括住的部分称为类体。
class前的修饰符可以有多个,用来限定所定义的类的使用方式。
类名是用户为该类所起的名字,它必须是一个合法的标识符,并尽量遵从命名约定。
extends是关键字。
如果所定义的类是从某一个父类派生而来,那么,父类的名字要写在extends之后。
类定义中的数据成员变量可以有多个。
成员变量前面的类型是该变量的类型;类中的成员方法也可以有多个,其前面的类型是方法返回值的类型。
如果没有返回值,则写void。
方法体是要执行的真正语句。
在方法体中还可以定义该方法内使用的局部变量,这些变量只在该方法内有效。
方法的参数列表中可以含有0 个或多个参数,每个参数的前面要指明该参数的类型。
类定义中的修饰符是访问权限修饰符,包括 public、private和protected,也可以不写,表示是默认修饰符。
它们既可以用来修饰类,又可以修饰类中的成员,修饰符决定所修饰成员在程序运行时被访问的方式。
具体来说,用public修饰的成员表示是公有的,也就是它可以被其他任何对象访问。
类中限定为private的成员只能被这个类本身访问,在类外不可见。
用 protected修饰的成员是受保护的,只可以被同一包及其子类的实例对象访问。
如果不写任何修饰符,则表明是默认的,相应的成员可以被所在包中的各类访问。
类的示例使用类可以构造所需的各种类型。
例如,程序中要说明日期这个类型,它含有3个成员变量:日、月、年,分别用3个整数来表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5) 面向对象概念
A 类型: 名词概念, 如: 客人, 菜品, 厨师
B 引用(变量): 引用具体概念实例的代词, 如: 某人, 特价菜
C 对象(东西): 具体概念的个体实例,如:张三丰这个人, 一盘大盘鸡
D 行为(方法)
E 多态: 行为/引用, 在具体情形下发生了变化的现象
Y
3 构造器(构造方法) 的作用: 用来描述对象的初始化过程的.
1)
如: 月饼实例的பைடு நூலகம்建, 使用面和馅创建.
制作(构造器)
月饼模子(类) -----> 月饼(对象)
原料(构建参数)
属性赋值
面向对象 Day02
2012/4/1
====================
OO
类 引用 对象
构造器
方法
1 面向对象(OO)
1) 什么是Object(对象), Object 本意:东西,是指一个具体事物实例
2) 面向对象, 面向客观事物之间的关系.
4) OOA面向对象分析/OOD 面向对象设计
3 实现习题案例: 圆类, 矩形和Person类
案例1: 圆(Circle), 矩形(Rectangle)
圆: 包含 圆心(Point)和半径(int)两个属性
矩形: 包含 顶点和宽,高三个属性
提供合理的构造器
提供方法, 计算当前图形的面积
计算当前图形是否包含(contains(Point))指定的点
重载方法 contains(int x, int y) 图形是否包含坐标x,y
案例2: 定义民政业务类 Person
定义属性: 编号,名字,性别,年龄, 婚否, 身份证号, 地址, 电话,
伴侣
提供方法: 结婚, 参数是另外一个人
Java 局部变量在栈中分配, 是按照变量的类型分配
对象在堆中分配, 按照类的属性(实例变量)分配空间
C 变量类型与分配
变量分为: 基本类型和引用类型
基本类型变量的空间大小: 就是基本类型的空间大小, 值是基本类型
的值
引用变量的值是一个对象的地址值, 引用变量通过地址引用了一个堆
方法签名 = 方法名+参数类型列表
方法重载:a 方法名一样 b 方法参数不一样
也可以说: 方法名一样, 方法签名不同的方法
6) 默认构造器
1 java 类一定有构造器
案例: ConstructorDemo.java
2 如果类没有声明任何构造器,Javac自动提供一个
默认构造器, 无参数默认构造器
3 如果提供构造器声明, Javac将不再提供默认构
造器.
4 对象的方法
1) 表示对象的功能, 依赖于对象存在.
案例: Point.java
如: p1.distance() 和 p2.distance()
方法是动作,是功能,一般用动词声明.
double price;
}
3) 引用变量与对象的创建过程:
A Java的内存管理与分配:
栈是一块Java使用内存区域, 使用的方式:LIFO(后来者居上)
堆也是一块Java使用内存区域, 使用方式: 无需随机分配
B 局部变量 与 堆对象空间分配
定义合理的结婚规则
结婚结果, 如果成功就合理更新双方的属性 婚否和伴侣,
返回true, 代表结婚成功, 结婚失败就返回false
4 预习: 类的继承
public class Point {
int x;
int y;
/** 构造器 */
public Point(int x, int y){
this.x = x;
this.y = y;
}
}
3) 对象实例化过程:
new运算: 创建对象实例
书的特征: 书号, 书名, 编号, 作者, 价格...
类 == 类型
2) 类的声明:
public class Book{
long id;
String name;
String isbn; //书号
String[] authors; //作者
平面绘图坐标系中的一个点(Point),定义合理的属性
坐标是int类型.
O+-----------------------------> X
|
|
|
|
| . p(x,y)
|
|
|
|
可以使用this明确的访问当前对象的属性或者方法
类似于"我".
this() 是调用本类的其他构造器, 可以使用构造器的重用,
简化代码的实现.
* this() 必须写在构造器的第一行!
5) 构造方法重载: 参数不一样的构造器
案例: Point.java
1 根据类的属性在堆中分配对象空间.并且自动初始化实例变量(属性)
2 根据参数类型调用构造器.
3 new运算返回对象的引用地址.(这个地址就是引用)
4) this 关键字
this 是对当前对象的引用, 是运行期间当前对象本身.
this是在运行期间, 作为方法的第一个隐含参数, 是局部变量
一盏灯: 多态的
打: 根据宾语发生变化
F 封装: 任何对象实例都是尽可能封装, 减少暴露
E 继承: 概念的继承关系
2 Java 类型, 引用变量 与 堆对象
1)Java 类, 是用来描述事物类型的. 如: 书
<图书馆管理系统>中的概念: 书 Book
点类型 --------> 点(3,4)
坐标(3,4)
2) Java中的构造器: 声明在类内部, 方法名与类名一致
的方法叫构造方法, 构造方法不能声明返回值类型.
构造方法可以包含参数, 参数一般是创建对象实例
必须依赖的条件(前提条件).
对象.引用类型变量的占用空间大小和值管理是"透明的(不可看见)",
由Java系统管理: 变量占用空间以及值的管理, 都是透明的.
4) 对象的属性默认自动初始化的. 自动初始化为"零"值, 引用为null
5) 在null引用上调用属性或方法, 会发生运行时异常
案例:
2)方法也经常重载, 重载:方法名一样, 参数不一样重载体现了,
功能的多态.重载的方法经常互相重用.
作业:
1 练习课题案例
2 绘制PointDemo.java 的运行内存原理图
实现方法 public double distabce(int x, int y)