Java SE 第八讲
1、面向对象程序设计(Object Oriented Programming,OOP;Object Oriented Design, OOD)。什么是面向对象?在面向对象程序设计中有两个重要的概念:类(class)与对象(object)。
2、类:类是一种抽象的概念,类中包含了数据(通常使用名词来表示,数据在类中称作属性【Property或Attribute】或者叫成员变量【Member variable】)与对数据的操纵(通常使用动词来表示,这种操纵在类中称作方法【method】)。比如说人就是一种抽象的概念,人具有姓名、年龄、身高等数据,还有吃饭、跑步等操纵数据的动作。
1)类所包含的内容:属性和方法。
2)如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是public的。 对于只用一个public类的源文件,main方法一定要放在这个类中;对于没有public类的源文件,main方法可以放在任意一个方法内。
3、对象:对象是一种具体的概念,是类的一种具体表示方式。比如说人是一个类,而张三、李四、王五等具体的人就是对象。
4、 类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念。先有类,然后由类来生成对象(Object)。对象又叫做实例(Instance)。生成一个对象的过程又叫做实例化。
5. 面向对象程序设计的三大基本特征:继承(Inheritence)、封装(Encapsulation)、多态(Polymorphism)
6. 命名约定
a) 类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符。比如Person类,MemberTest类。
b) 方法:首字母小写。如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写。比如add,addThreeInt。
c) 属性:命名约定与方法相同。比如age,ageOfPerson。
信息的隐蔽
面向对象的三大特征:封装、继承与多态。
只要某个编程语言是属于面向对象编程语言,它就必须具有这三个特征。Java也不例外。
下面我们会先来说说面向对象特征中的封装,但是在说它之前,还是先来说说信息的隐藏。这里,隐藏就像是封装的先锋官,没有了隐藏,封装就无从谈起。
我们已经知道了,Java中类和对象的概念,来自于我们的真实世界的抽象。那么我们在声明一个类,并根据类来创建对象的时候,就要估计它的真实合理性。
比如前面的学生类示例中,声明了age年龄属性。类型为整数类型。年龄是用来描述学生信息的。那么,如果运行其他的用户(比如其他的类或者对象)可以直接操作对象的属性,就会出现一些不必要的问题。
例如:将年龄(age)的值设置为1000。
虽然这在语法上是没有问题的,但是,我们知道,在现实世界中,这种情况是绝对不可能出现的。如果在程序的其它部分使用到了这个age,就可能会引起问题。
因此,一般而言,应该将属性定义为private(私有的)的,这样,只有类本身才可以访问这个属性,而外部程序或其他的类是不能访问它的(private的详细说明后面章节说明)。
通过定义不同的方法,并且将这些方法设置为public或Default来访问这些属性,这样,我们可以通过在方法中加入一些逻辑判断的方法来操作属性,例如,将年龄的上限设置为100,将下限设置为10等,这样就不会出现年龄为1000的情况了。一个改进后的Student类的定义如下(省略了其他属性和相应的方法):
public class Student1 { // 定义属性 private int age; // 定义属性“age”的设置方法 public void setAge(int s_age) { if (s_age > 100) { age = 100; } else if (s_age < 10) { age = 10; } else { age = s_age; } } // 定义属性“age”的获取方法 public int getAge() { return age; } }
这里先简单说明一下,在setAge方法中,if逻辑表示分支判断,很容易读出,当用户提供的参数年龄值大于100,则最多年龄可以记为100,如果小于10,则最小年龄可以记为10,如果年龄值在10到100的范围内,可以完成用户的赋值要求。
当然,这个逻辑可以根据实际情况来修改,这样一来,用户(其他的对象和类)就无法直接对年龄属性“胡作非为”了,他必须在我们的监督下完成操作。
这就是信息的隐藏。即将类中不想让其他用户直接操作的属性(或者方法,一般主要指属性)设置为private修饰,只允许在该类里面进行操作。
相关推荐
Java面向对象程序设计是计算机编程领域中的核心主题,它基于面向对象编程(OOP)理念,使得代码更具有模块化、可复用性和易于维护的特点。以下是对标题和描述中涉及的知识点的详细阐述: 1. **第1章:Java入门** -...
在本资源中,"C#面向对象程序设计课后习题答案完整版 郑宇军" 是一个针对C#编程语言中面向对象概念的学习资料,由郑宇军编著。面向对象编程(Object-Oriented Programming, OOP)是C#的核心特性,它基于类和对象的...
在Java面向对象程序设计实验课的学习过程中,我深入体验了Java语言的强大特性和它在软件开发中的重要地位。Java作为一种面向对象的语言,它的核心概念包括抽象、封装、继承和多态,这些特性使得Java在软件工程中具有...
【清华大学面向对象程序设计C++课后答案解析】 在学习C++这门强大的面向对象编程语言时,掌握好基础知识并能解决实际问题至关重要。清华大学的《C++面向对象程序设计》是一本广受推崇的教材,由郑莉教授编写,其第...
### 面向对象程序设计(C#版)关键知识点总结 #### 一、面向对象思想的核心价值 **四大发明之活字印刷——面向对象思想的胜利** - **可维护性**:面向对象的设计使得程序更加易于维护。就像活字印刷中的每一个字符...
面向对象程序设计(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它基于“对象”的概念,使得代码更易于理解、维护和重用。在这个教程中,我们将深入探讨面向对象的基本概念、原则以及如何在实际...
面向对象程序设计是一种广泛应用于现代软件开发中的编程范式,其核心思想是通过模拟真实世界中的对象和它们之间的关系来构建软件系统。在这个场景中,我们讨论的是一个模拟复印机工作的软件,这将涉及到类的设计、...
在面向对象程序设计中,MFC(Microsoft Foundation Classes)是一个由微软提供的C++类库,它为Windows应用程序开发提供了一套框架。MFC使得开发者能够更高效地利用Windows API,并且简化了用户界面、数据库访问、多...
"戏说面向对象程序设计C#版"可能是一本以轻松幽默的方式讲解这一主题的书籍,旨在帮助初学者更好地理解和运用C#进行面向对象编程。 1. 类与对象:在C#中,类是创建对象的蓝图,它定义了对象的属性(数据成员)和...
面向对象程序设计(Object-Oriented Programming,OOP)是一种基于对象和类的编程范式,它强调将数据和操作数据的方法封装在一起,形成独立的对象,以提高代码的复用性和可维护性。OOP的核心理念是模拟现实世界中的...
面向对象编程是Java语言的核心特性,它是一种编程范式,基于“对象”的概念,通过封装、继承和多态性来组织代码。...所以,如果你对面向对象感到困惑或想要深化理解,这些资料将是你宝贵的参考资料。
Java 面向对象的理解: Java 面向对象编程(OOP)是现代软件开发中的核心概念之一,它强调将复杂的问题空间转化为一组相互协作的对象。与面向过程编程相比,面向对象更接近人类自然思维,它使得代码更加模块化,...
综上所述,Java语言与面向对象程序设计的核心在于理解和模拟现实世界的问题,通过类和对象的概念来组织和操作数据,利用封装、继承和多态等机制实现高效且灵活的代码设计。这一领域的学习对于理解和构建复杂软件系统...
该书的内容包括了基本知识、面向过程的程序设计、基于对象的程序设计以及面向对象的程序设计。 3. C++语言的特点与学习难度: 书中提到,C++是一种广泛使用的现代计算机语言,具有面向过程和面向对象的程序设计...
面向对象程序设计是C++语言的核心特性之一,它允许我们以更加符合现实世界逻辑...通过这个实验,学生能够深入理解面向对象程序设计的基本原理,掌握C++中运算符重载、多态性以及文件I/O的实际应用,从而提高编程能力。
测绘程序设计中,数据结构的选择至关重要,如点、线、面等几何对象的表示,可能需要用到自定义的数据结构,如结构体或类。同时,了解如何高效地存储和操作这些数据结构对于程序性能至关重要。 8. 图形界面编程: ...