对象与类的简介

news/2024/7/7 16:27:20 标签: java

文章目录

      • 前言
      • 对象

前言

面向对象程序设计(简称OOP)是当今主流的程序设计范型,它已经取代了20世纪70年代的“结构化”过程化程序设计开发技术。Java是完全面向对象的,必须熟悉OOP才能够编写Java程序。

面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。

本文主要介绍对象和类是什么

类(class)是构造对象的模板或蓝图。我们可以将类想象成制作小甜饼的切割机,将对象想象为小甜饼。由类构造(construct)对象的过程称为创建类的实例(instance)。
用Java编写的所有代码都位于某个类的内部。标准的Java库提供了几千个类,可以用于用户界面设计、日期、日历和网络程序设计。尽管如此,还是需要在Java程序中创建一些自己的类,以便描述应用程序所对应的问题域中的对象。
封装(encapsulation,有时称为数据隐藏)是与对象有关的一个重要概念。从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域(instance field),操纵数据的过程称为方法(method)。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。无论何时,只要向对象发送一个消息,它的状态就有可能发生改变。
实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。封装给对象赋予了“黑盒”特征,这是提高重用性和可靠性的关键。这意味着一个类可以全面地改变存储数据的方式,只要仍旧使用同样的方法操作数据,其他对象就不会知道或介意所发生的变化。
OOP的另一个原则会让用户自定义Java类变得轻而易举,这就是:可以通过扩展一个类来建立另外一个新的类。事实上,在Java中,所有的类都源自于一个“神通广大的超类”,它就是Object。
在扩展一个已有的类时,这个扩展后的新类具有所扩展的类的全部属性和方法。在新类中,只需提供适用于这个新类的新方法和数据域就可以了。通过扩展一个类来建立另外一个类的过程称为继承(inheritance)。

对象

要想使用OOP,一定要清楚对象的三个主要特性:
● 对象的行为(behavior)——可以对对象施加哪些操作,或可以对对象施加哪些方法?
● 对象的状态(state)——当施加那些方法时,对象如何响应?
● 对象标识(identity)——如何辨别具有相同行为与状态的不同对象?
同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。
此外,每个对象都保存着描述当前特征的信息。这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的。对象状态的改变必须通过调用方法实现(如果不经过方法调用就可以改变对象状态,只能说明封装性遭到了破坏)。
但是,对象的状态并不能完全描述一个对象。每个对象都有一个唯一的身份(identity)。例如,在一个订单处理系统中,任何两个订单都存在着不同之处,即使所订购的货物完全相同也是如此。需要注意,作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在着差异。
对象的这些关键特性在彼此之间相互影响着。例如,对象的状态影响它的行为(如果一个订单“已送货”或“已付款”,就应该拒绝调用具有增删订单中条目的方法。反过来,如果订单是“空的”,即还没有加入预订的物品,这个订单就不应该进入“已送货”状态)。


http://www.niftyadmin.cn/n/1440994.html

相关文章

Nginx 基本介绍

同类产品 同类竞争产品,Apache,Tomcat,IIS等。 Tomcat面向Java。 IIS只能在Windows上运行。 Apache有很多优点,稳定,开源,跨平台。但是它比较重,而且不支持高并发。 Nginx是轻量级,高…

Win Server2003常见问题及解决然方案(转)

随着windows server 2003的上市在即,很多人可以用上的泄漏的版本,相对于工作站系统,服务器在由于做了更多的内核优化,所以在稳定性和安全性方面有很大的提高。但是,很多人并不是需要Server的全部功能的,而且…

java开发插件Lombok

lombok的下载 lombok.jar软件包地址 链接:https://pan.baidu.com/s/1K1r3XirJbMzb2VLNH6f7Vg 提取码:6666 先看效果: 在没有手写getter,setter,等方法的前提下,左边依然可以看见这些方法,这个工…

一文读懂什么是Java中的自动拆装箱

前言 本文主要介绍Java中的自动拆箱与自动装箱的有关知识。、 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。 Java是一种强类型语言,第一次申明变量必须说明数据类型&…

搭建WAP应用开发环境(转)

J2ME开发网最近开辟了Java技术与WAP开发专题,专题将主要讲述WAP开发和Java技术中相互结合的部分。不再开辟新的文章栏目,如果网友发表WAP相关的技术请归入Java技术与WAP开发专题。 WAP(Wireless Application Protocal)是开放的协议,这与日本的…

搞定PHP面试 - 变量知识点整理

一、变量的定义 1. 变量的命名规则 变量名可以包含字母、数字、下划线,不能以数字开头。 $Var_1 foo; // 合法 $var1 foo; // 合法 $_var1 foo; // 合法 $Var-1 foo; // 非法,不能包含 - $1_var foo; // 非法,不能以数字开头 在此所说的…

JavaSE语言基础之字符串

字符串(string):永远用“”双引号(英文状态下),用字符串连接任何数据(整数),都会默认的转化为字符串类型。 字符串与基本数据类型链接的问题: 如果第一个是字符串那么后续就都按字符…

【每日一题】整数反转

题目描述: 输入输出实例: 思路: 题目中说的是整数的反转,我们可以很自然的想到stack和stringBuild来实现整数的反转,先将整数转化为字符串,然后对字符串进行操作,实现字符串的反转&#xff0…