5 Java面向对象思想和概念

合集下载

什么是面向对象、对象是什么、什么是类、如何使用对象、类和对象的关系

什么是面向对象、对象是什么、什么是类、如何使用对象、类和对象的关系

什么是⾯向对象、对象是什么、什么是类、如何使⽤对象、类和对象的关系⾯向对象⼀、⾯向对象 概念:⾯向对象是⼀种编程思想,使⽤编程语⾔解决现实问题的⼀种思路。

分类: ⾯向过程: C 语⾔ ⾯向对象: Java ⾯向对象的思想: ⾯向对象的思想: ⾯向过程的思想:⾃顶向下 逐步执⾏。

---> 当解决⼀件事情的时候,⾸先想到的是我该怎么去做⾯向对象思想:以对象为中⼼,使⽤对象调⽤其功能。

---> 当解决⼀件事情的时候,⾸先想到的是我该让谁帮我做。

想到的谁 ---> 对象 对象:现实⽣活中存在的真实的事物都是对象,Java 中有⼀句名⾔: 万物皆对象,⼤到宇宙、⼩到夸克在Java 的世界中都可以看成对象。

提起对象,就需要提起另⼀个概念——类。

类是对象的模板,对象是类的实例。

⼆、类 概念: 将具有相同特征的⼀类事物的共性进⾏抽取(抽取的过程叫做抽象),形成的⼀个概念叫做类。

类的抽象: 1. 怎么去描述⼀个事物,从哪些维度进⾏描述? 这个事物具有什么 ---> 属性 这个事物会做什么 ---> ⾏为 2. 怎么去描述⼀类事物的共性? 这些事物具有什么 ---> 属性 这些事物会做什么 ---> ⾏为 类和对象的关系: 类是对象的模板 对象是类的实例 类的定义: 概述: 属性 : 使⽤成员变量来进⾏描述 ⾏为 : 使⽤成员⽅法进⾏描述 语法:关键词:class语法:public class 类名{} 成员变量 定义位置:类中⽅法外 语法: 数据类型 变量名; / 数据类型 变量名 = 初始值;作⽤域:⾄少在本类 默认值: 和数组元素的默认值是⼀样的 基本数据类型 整数类型 0 ⼩数类型 0.0 字符类型空字符 布尔类型 false 引⽤数据类型 null 定义的注意事项 1. 在同⼀个类中不能定义两个同名的成员变量 2. 在同⼀个类中成员变量可以和局部变量可以重名,但是在访问的时候,局部变量优先。

第4章 Java面向对象程序设计(上)

第4章 Java面向对象程序设计(上)

12
Java的程序结构
Source file class
member variables
类存在于源文件中 方法存在于类中 语句存在于方法中

method1 method2
13
源文件和类


源文件(如: Dog.java)带有类的 定义。 类用来表示程序 类用来表示程序的一 个组件 类的数量可多可少 类的内容必须包括.Point; class PassByValue{ public static void modifyPoint(Point pt, pt int j) { pt.setLocation(5,5); pt.setLocation (5,5); //--1-j = 15; System.out.println("During modifyPoint " + "pt = " + pt + " and j = " + j); }
start():void stop():void t () id move(direction:String):void
8
对象是表示现实世界中某个具体的事物; 类是对对象的抽象描述。 类是对对象的抽象描述
Car Car
……
car1; car2;
…… Car carN; ;
9
属性 方法和消息 属性、方法和消息
面向对象的概念——对象(续)
class Car{ String colour; String model; p y; int fuelCapacity void start() { … } void stop() {…} void move() { … } }

第5章 Java中的面向对象特性

第5章  Java中的面向对象特性

堆内存 代码区 public class Person { static int id; int age = 20; public static void main(String[] args) {… } } id age
Zhangsan.id
Zhangsan.age lisi.id
lisi.age
例2: 五子棋

面向过程:
1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。

面向对象:
1、黑白双方 --这两方的行为是一模一样的, 2、棋盘系统 --负责绘制画面, 3、规则系统 --负责判定诸如犯规、输赢等。
a product
1.2 ×× 1.728 ×× 1.2
参数传递方式 值传递方式
方式:方法调用时,为形参分配单元,并将实参的值复制到形参
中;调用结束,形参单元被释放,实参单元仍保留并维持原 值 特点: 形参与实参占用不同的内存单元 单向传递
Person zhangSan=new Person(“张三”,18,“男”);
zhangSan
0xabcd
张三 null
name sex age
0 18
栈内存 实体的内存地址
男 0
堆内存
使用new 运算符和类的构造方法为声明 的对象分配内存,如果类中没有构造方法, 系统会调用默认的构造方法,默认的构造方 法是无参数的。
事万物皆对象”。 对象可以看成是静态属性(成员变量)和动态属 性(方法)的封装体。 类是用来创建同一类型的对象的“模板”,在 一个类中定义了该类对象所应具有的成员变量 以及方法。 移J2SDK提供了很多类供编程人员使用,编程 人员也可定义自己的类。

简述面向对象的概念

简述面向对象的概念

简述面向对象的概念
面向对象是一种编程思想,将问题抽象成对象,通过对象之间的交互来解决问题。

面向对象的概念包括以下几个要点:
1. 类:类是对象的模板,定义了对象的属性和行为。

它可以看作是一种数据类型,通过实例化类可以创建对象。

2. 对象:对象是类的一个具体实例,具有自己的状态(属性)和行为(方法)。

对象可以相互交互,通过调用方法来完成特定的功能。

3. 封装:封装是面向对象的一种特性,将数据和操作数据的方法封装在一个对象中,隐藏内部实现细节,只提供对外的接口。

4. 继承:继承是指一个类可以派生出子类,子类继承了父类的属性和方法,并可以在此基础上进行扩展或修改。

5. 多态:多态是指同一类型的对象,在不同的情况下可以呈现出不同的行为。

通过继承和重写父类的方法,实现不同对象对同一消息的响应。

面向对象的编程思想使得程序的设计更加灵活和易于维护,通过抽象、封装、继承和多态,可以提高代码的复用性、可扩展性和可读性。

面向对象

面向对象

面向对象面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

定义首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。

在Java中,面向对象可以看成面向抽象和面向接口编程。

浅谈面向对象谈到面向对象,这方面的文章非常多。

但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。

起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。

可是,这个定义显然不能再适合现在情况。

面向对象的思想已经涉及到软件开发的各个方面。

如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。

看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。

这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

面向对象的分解根据抽象关键的问题域来分解系统。

面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。

一、传统开发方法存在问题1.软件重用性差重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。

软件重用性是软件工程追求的目标之一。

Java编程语言的基本概念和应用

Java编程语言的基本概念和应用

Java编程语言的基本概念和应用一、概述Java作为一种跨平台的高级语言,在当今软件开发行业具有广泛的应用。

它被广泛应用于企业级应用开发、Web开发、移动应用开发、大数据处理、人工智能等领域。

本文将从Java编程语言的基本概念、语言特性和其应用方面来进行阐述。

二、基本概念1. Java发展历史Java是由Sun Microsystems公司于1995年推出的一种面向对象的编程语言。

最初在设计上它的目标就是为了用来开发嵌入式系统。

随着互联网的快速发展以及Sun公司自身的努力,在Web开发、企业级应用开发等领域得到了广泛应用。

2009年,Sun公司被Oracle公司收购,Java也成为了Oracle公司旗下的一个产品。

2. Java虚拟机Java虚拟机(JVM)是Java的核心,它是Java语言的运行环境。

Java虚拟机的作用是将编写的Java程序转化为字节码并执行。

Java语言通过JVM实现了跨平台,即一份程序或者一个库可以在多个平台上运行,而不需要针对每个平台分别进行编译和打包。

3. Java程序结构Java程序的基本结构包括:(1). Package(包):Java程序一般都是从一个包开始的,每个包下面又可以包含多个类。

包的作用是为了防止不同包下的类名重名,同时也可以方便地进行分类管理。

(2). Class(类):Java中的所有代码都要写在class中,一个Java程序中可以有多个class。

(3). Method(方法):方法是Java中功能最基本的单元,一个Java程序可以由多个方法组成。

在方法中可以定义变量、控制语句、循环语句等。

(4). Statement(语句):Java中的语句有很多种,包括赋值语句、控制语句、循环语句、异常处理语句等。

4. Java数据类型Java数据类型分为基本数据类型和引用数据类型。

基本数据类型包括:byte、short、int、long、float、double、boolean和char等8种类型。

Java面向对象

Java面向对象
4
类的概述

类包括两方面的内容:


属性:用来描述对象的数据元素称为对象的属 性(也称为数据/状态) 方法:对对象的属性进行的操作称为对象的方 法(也称为行为/操作)
5
对象的概述


对象的主要属性是状态和行为。 对象的状态为静态属性,即变量。它表示对 象所处的状态。对象的操作可以改变对象的 状态。 对象的行为为动态属性,也称为操作。操作 的作用是设置或者改变对象的状态
[< modifiers>] class < class_name> { [<attribute_declarations>] [<constructor_declarations>] [<method_declarations>] }

举例:
public class Student{ private int age ; public void setAge(int _age) { age = _age; } }



public class Dog { private int weight; public Dog(int w) { weight = w; } }
12
默认的构造函数

Java语言中,每个类都至少有一个构造方法; 如果类的定义者没有显式的定义任何构造方法,系统将自 动提供一个默认的构造方法:
19


this:就代表本类的对象,到底代表哪一个 呢? this代表它所在函数所属对象的引用。 简单说:哪个对象在调用this所在的函数, this就代表哪个对象。
20
this的应用

Java的面向对象编程思想

Java的面向对象编程思想

Java的面向对象编程思想Java是一门流行的编程语言,其被广泛应用于各种领域。

与其它编程语言相比,Java有其独特的面向对象编程思想。

面向对象编程强调的是程序的对象,而不是程序的函数或指令。

这种编程思想使得Java在软件开发中越发重要。

一、什么是面向对象编程思想?在Java编程中,面向对象编程思想是基础。

面向对象编程(OOP)是一种程序设计模式,其中程序看作是一系列对象,每个对象都可以接收数据、处理数据和传递数据。

OOP将数据和方法捆绑在一起,使得数据和方法能够共同操作,对象有助于降低软件的复杂性并强化代码的重用性。

二、Java的基础数据类型Java有两类数据类型:基本数据类型和引用数据类型。

基本数据类型代表的是单一值,例如布尔型、字符型、整型和浮点型。

引用数据类型代表的是对现实世界中的事物进行的抽象。

这些事物可以指对象、集合和数组等复杂的数据结构。

三、Java的面向对象编程实现Java编程中,作为程序员,首先要学会如何写类。

一个类表示了一个对象的行为和属性,同时还定义了该对象的方法。

例如,我们可以定义一个名为Person_class的类,其中包含属性name、age和gender。

我们还可以定义一个set_name()方法来设置该对象的name属性。

Java通过继承实现代码重用。

通过继承,子类可以从父类继承属性和方法。

这使得代码可重用性更高。

子类可以通过继承获得父类的方法,并且还可以添加新的方法和属性。

Java中,一个类只能继承一个父类,但是可以实现多个接口。

Java还支持多态。

Java中,多态指对象可以具有多种形式,可以是父类或子类的对象。

这使得代码可以更加灵活。

多态性可以通过向上转型、方法重载和方法覆盖来实现。

四、Java的封装封装是OOP的基本概念之一,它是指隐藏对象的内部细节,同时只提供公共API以供外部使用。

Java中的封装通常通过访问控制符来实现。

Java的访问控制符有public、private、protected和default。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
默认构造函数 (Default Constructor)

默认构造函数指没有参数的构造函数

如果编写的类没有构造函数,系统会自 动提供一个默认构造函数,它把所有的 属性设为默认值
不要构造函数?试一试?
22

带参数的构造函数
• • • • • • • • • • • • • • • • class Box { double width; double height; double depth; // 有参数的构造函数 Box(double w,double h,double d) { width = w; height = h; depth = d; } double volume() { return width * height * depth; } } 调用: Box mybox1 = new Box(10,20,15); Box mybox2 = new Box(3,6,9);


过程化程序设计先确定算法,再确定数据结构;面向对象编 程先确定数据结构,再确定运算。
面向过程编程的程序员,习惯于建立数据结构存放数据并定 义方法(函数)来操作数据;面向对象编程的程序员则构造 一个对象模型,将数据与方法组织在一起。

3
对象 对象的状态 对象的行为

我们可以把现实世界的事物抽象成对象 对象一般都有两个特征: 状态(state)和行为(behavior) 软件的对象概念是由现实世界对象抽象而来 把现实世界对象的状态保存在软件对象的变量中;现实世界对象 的行为通过软件对象的方法(函数)来实现。

13
类的定义(Declaration)
[修饰符] class 类名 [继承父类][接口] { 成员变量; 构造方法; 成员方法; }

文件名必须与public类名相同;
14
创建对象
使用下列语法可创建对象: new 构造函数 关键字 new 通常称为创建运算符,用于分配对象内存,并将该内存 初始化为缺省值。 一旦 new 完成分配和初始化内存,它就将调用构造函数来执行对象 初始化。
10
面向对象的三个特征

Байду номын сангаас
封装(Encapsulation)
继承(Inheritance) 多态(Polymorphism)


11
封装(Encapsulation)

封装把对象的所有组成部分组合在一起,封装定义程序如何引用 对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用 户对类的修改和访问数据的程度
修饰符 返回类型 如: Double salery ;

[throws 异常


方法名
参数列表


Public void addSalery(double sal){ // 方法执行体 salery += sal ; }
25
方法的调用(Method Invoking)

方法是类的一个动态的属性,先创建类的一个实例对象,通 过对象.方法名来调用方法 如: public class Employee{ • public void show(){ • System.out.println(“ Hello ”); • }
this引用
class Box{ double width, height, depth ;

Public Box(double width,double height,double depth){ this.width = width ; this.height = height; this.depth = depth ; } } 注意: 在这样的环境下使用this有时会引起混淆。有些程序员比较小心, 不使用和局部变量、正式的自变量同名的隐藏的实例变量。当然,另 外的程序员则相反,相信用this来“揭开”与局部变量、自变量同名 的实例变量是一个好习惯。这取决于你的爱好 。
• class Box { • double width; • double height; • double depth; • • Box() { • System.out.println("Constructing Box"); • width = 10; • height = 10; • depth = 10; • } • • double volume() { • return width * height * depth; • } • }
9
一个简单的例子

编写一个驾驶汽车的方法
面向过程的程序设计: 编写一个方法,void drivecar(); 面向对象的程序设计: 将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来, 设计一个类Car,类中有一个方法void drive(),用Car这个类实 例化一个具体的对象car,调用:car.drive()。


7
对象和类(Objects and Classes)

把相似的对象划归成一个类。 在软件中,类,就是一个模板,它定义了通用于一个特定种类的 所有对象的状态(变量)和行为(方法)。 类是创建对象的模板,对象是类的实例。

一个对象是类的一个实例。有了类,才可以创建对象。类不能是 它们描述的对象本身,类是同一种对象的集合的抽象,即,同一 类对象的变量和方法的原型。
23
方法(Methods)
方法是类的主要组成部分。 在一个类中,程序的作用体现 在方法中。方法是Java语言的 基本构件。利用方法可以组成 结构良好的程序。本章介绍方 法的构成规则和设计、使用方 法的基本要点。
24
方法的声明

一般的方法声明可以具有如下形式: [访问控制符][修饰符] 返回类型 方法名(参数表) 类名表] { „ „ //方法体 }
对于this的第二种用法(作用),看以下例子
public class Test2 { int i; float f; double d;
public Test2(int i, float f) { this.i = i; this.f = f; }
public Test2(int m, float n, double dd) { this(m,n); //Invoke another constructor this.d = dd; } }

b1 = null; //b1被设置为空,但是b2仍然指向原来的对象。
19
构造函数(Constructor)

构造函数是类的一种特殊的方法,主要表现: (1)构造函数的方法名与类名相同。 (2)构造函数没有返回类型。 (3)构造函数的主要作用是完成对类对象的初始化工作。

20
构造函数定义


4
面向对象

OOA-Object Oriented Analysis 面向对象的分析 OOD-Object Oriented Design 面向对象的设计 OOI-Object Oriented Implementation 面向对象的实现


5
面向对象编程( Object Oriented Programming )
当创建一个类时,只是创建 了一种新的数据类型。对象 是类的一个实例。
15
new
1、第一步,你必须声明该类类型的一个变量,这个变量没有定义一个 对象。实际上,它只是一个能够引用对象的简单变量。 2、第二步,该声明要创建一个对象的实际的物理拷贝,并把对于该对 象的引用赋给该变量。这是通过使用new运算符实现的。new运算符 为对象动态分配(即在运行时分配)内存空间,并返回对它的一个 引用。这个引用或多或少的是new分配给对象的内存地址。然后这个 引用被存储在该变量中。这样,在Java中,所有的类对象都必须动 态分配。
variables
methods
8
面向对象程序设计 ( Object Oriented Programming )
从程序设计的角度看,类是面向对象程序中最基本的程序单元。类 实质上定义的是一种数据类型,这种数据类型就是对象类型 。所 以我们可以使用类名称来声明对象变量。

声明对象变量之后,还不能使用对象。必须用运算符new创建对象 实体之后,才能使用对象。

类实际上是对某种类型的对象定义变量和方法的原型。
在现实世界中,你经常看到相同类型的许多对象。比如 ,你的自 行车只是现实世界中许多自行车的其中一辆。使用面向对象技术, 我们可以说你的自行车是自行车对象类的一个实例。通常,自行 车有一些状态(当前档位、两个轮子等等)以及行为(改变档位、 刹车等等)。但是,每辆自行车的状态都是独立的并且跟其它自 行车不同。 当厂家制造自行车的时候,厂商利用了自行车共有的特性来根据 相同的蓝图制造许多自行车。如果制造一辆自行车就要产生一个 新蓝图,那效率就太低了
16
示例:
public class TestClass { int i; float j; TestClass(int m,int n) { this.i = m; this.j = n; } public static void main(String[] args) { TestClass a; TestClass b = new TestClass(666,99); //new返回对象引用 a = b; System.out.println(a.i); } }
1、引用当前对象。 2、使得类的一个构造函数可以调用类的另一个构造函数。
对于1,看下面的例子来理解:
27
public class TestClass { int i; float j; TestClass(int m,int n) { this.i = m; this.j = n; this.show_Message();//通过this调用类的普通成员方法了 } void show_Message() { System.out.println("Hello, everyone!"); } public static void main(String[] args) { TestClass a; TestClass b = new TestClass(666,99); a = b; System.out.println(a.i); } }
相关文档
最新文档