第一章 对象和封装

【学习目标】:

【学习目标】:

=>①使用类图描述设计

=>②掌握面向对象设计的基本步骤

=>③掌握类和对象的概念

=>④掌握构造方法及其重载

=>⑤掌握封装的概念及其使用

1.1  用面向对象开发系统

1.1.1  为什么使用面向对象?

现实世界是面向对象的,面向对象就是采用“现实模拟”的方法设计和开发程序。

面向对象技术利用“面向对象的思想”去描述“面向对象的世界”,实现了虚拟世界和现实世界的一致性,符合人们的思维方式。

同时代码重用性高、可靠性高等优点,大大提高了软件的开发效率。

问题:面向过程和面向对象的区别?

答:面向过程的核心是函数,以功能为中心,实现了函数级别的代码重用。面向对象的核心是封装了属性和方法(行为)的类,以数据为中心,实现了类级别的代码重用。面向对象因为采用了类,所以具有继承和多肽特性,可以进一步重用代码和简化编程。而面向过程中没有继承和多肽特性。

1.1.2  使用面向对象进行程序设计

面向对象设计的过程就是抽象的过程,分以下三步:

第一步:发现类

第二步:发现类的属性

第三步:发现类的方法

抽象时遵循的原则如下:

◆ 属性和方法的设置是为了解决业务问题。

? 关注主要属性和方法。

? 如没有必要,勿增加额外的类、属性与方法。

类图是面向对象设计的“图纸”,使用“图纸”进行设计,方便了沟通和修改。将设计的结果通过类图来表示。

1.2 创建类和对象

1.2.1  类和对象的创建

类的基本结构:类主要由属性和行为组成,属性和行为又称为类的成员变量(或者成员属性)和成员方法,统称为类的成员。

(除此之外,类的成员还包括构造方法和代码块等)。

Java中创建对象,调用属性及方法

? 通过构造方法/函数来创建对象,如:“”Penguin  p=new Penguin();。

? 通过对象名.属性名的方式调用属性,如:"p.name="qq";"。

? 通过对象名.方法名的方式调用方法,如:"p.print();"。

类和对象是面向对象的两个核心概念。类是对某一类事物的描述,是抽象的、概念上的定义。对象是实际存在的、具体的事物个体。我们可以由一个类创建多个对象。例如:建筑物图样和建筑物实物的关系。

常量

常量用来储存不变的数据,常量在程序运行过程中不会发生变化,只能被引用,不能被重新赋值,也就是只能在定义时修改其值。Java中常量使用final关键字修饰,并且常量名通常为大写。

final关键字除了可以用来修饰属性外,还可以修饰方法和类。

规范

类名、属性名、方法名及其常量名的命名规范如下:

? 类名由一个或几个单词组成,每个单词的第一个字母大写,如Dog、StringBuffer。

? 属性名和方法名由一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写,如:health、stuName、println()、getMessage()。

? 常量名由一个或几个单词组成,所有字母大写,如:PI、SEX_MALE。

1.2.2  构造方法及其重载

构造方法

在Java中,可以通过无参或者带参数的构造方法完成赋值(创建对象的同时赋值)的初始化工作。

假如含有一个Dog类,该类中含有一个无参构造方法public  Dog() {  //方法体  },当创建Dog类对象时Dog  dog =new Dog();,就会执行构造方法 Dog() 方法中的代码。构造方法是一个特殊的方法,当类中没有构造方法 Dog() 方法时,系统默认提供一个空的无参 Dog() 方法。

构造方法的名称和类名相同,没有返回值类型。构造方法的主要作用就是在创建对象时执行一些初始化操作,如给成员属性赋初值。

重载

同一个类中包含了两个或两个以上的方法,方法名相同,参数列表不同(参数个数/参数数据类型不同),这称为构造方法的重载。

成员方法和构造方法都可以进行重载。重载的例子:System.out.println(45);System.out.println(“狗狗在玩耍!”);

可以通过构造方法的重载来实现多种初始化行为,在创建对象时可以根据需要选择合适的构造方法。

在没有给类提供任何构造方法时,系统会默认提供一个无参的构造方法。一旦提供了自定义构造方法,系统将不再提供这个默认构造方法。如果要使用它,则程序员必须手动添加。

方法重载的判断依据:

◆ 必须在同一个类里

◆ 方法名相同

◆ 参数列表(方法参数的个数或数据类型)不同

◆ 与方法返回值和方法修饰符没有任何关系

? 在使用this调用自身的其他构造方法时,只能作为第一条语句。

销毁对象

对象的销毁不需要程序员来做,而是通过java虚拟机的垃圾回收器在后台自动实现。

1.2.3  static 修饰符

static 可以用来修饰属性、方法和代码块。static 修饰的变量属于这个类所有,即由这个类创建的所有对象共用同一个static 变量。通常把static修饰的属性和方法称为类属性(类变量)和类方法。不使用 static 修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)和实例方法。例如:main方法:public static void main(String[] args) { }  。

static用法和使用static修饰属性和代码块时,如何分配内存空间结论:

? 在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的。

? 类属性和类方法可以通过类名和对象名访问,实例属性和实例方法只能通过对象名访问。

? 类方法只能访问类属性和其他类方法。

注意:静态方法中不能使用this和super关键字。

在使用常量时为了方便调用,可以使用static来修饰,并且建议采用此种方式。例如:static  final  String  SEX_MALE ="Q仔";在使用时可以直接通过类名.SEX_MALE方式使用。这时称这个常量为静态常量。

1.3  使用封装优化系统中的类

封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问。

封装的具体步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。

封装的好处:隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理操作。

原文地址:https://www.cnblogs.com/wxdestiny/p/8622855.html

时间: 2024-10-07 23:06:57

第一章 对象和封装的相关文章

java基础 第一章 对象入门

第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与设计人员,建模处理变得更加简单,能生成清晰.易于维护的设计方案.对程序员,对象模型显得如此高雅和浅显.此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务.每个人都可从中获益,至少表面如此. 如果说它有缺点,那就是掌握它需付出的代价.思考对象的时候,需要采用形象思维,而不是程序化的思维.与程序化设

第一章 对象导论

一.重要知识 1.简单描述:这一章主要介绍基本的面向对象的相关知识,并对程序设计方式和Java的基本特性做了一个简单的描述和说明. 2.主要知识点: 万物皆对象 对象之间的关系 对象的自身属性和方法 对象的型别(type) 对象是一种(复杂)数据类型 二.遗留问题: 1.书中提到一词:后行绑定(late binding)不是很懂  没学过c的原因吧...以后有空学... 2.向上转型的实现方式 //... void doStuff(Shape s){ s.draw(); } //Circle类和

ThinkingInJava第一章对象导论

为什么我们编写的程序可以运行在计算机上?我们编写的程序会经过编译,翻译成为计算机可以运行的计算机指令. 计算机语言是我们头脑的延伸,就像音乐,绘画和电影一样,创造一种具有表达的艺术的东西. 面向对象程序设计就像自然界中的物种学家分类物种一样,他们具有某些共同的特征,所以我们通过class类的概念,我们可以创造出个体. 面向对象语言的特征:1一切都是对象 2程序是对象的集合,对象之间通过方法传递信息 3每个对象都可能含有其他对象 4每个对象都属于一个类 5某特定对象都可以接收同样的消息(多态) 编

JAVA编程思想学习笔记——第一章 对象导论

搞了一年多java,野路子出身,发现java基础这块还是相当的薄弱!故决定学习<Java编程思想>这本书.在此把学习的知识点记录下! 面向对象的五大特性 1.万物皆为对象 2.程序是对象的集合,它们通过发送消息来告诉彼此所要做的 3.每个对象都由自己的由其它对象所构成的存储 4.每个对象都拥有其类型 5.某一特定类型的所有对象都可以接收同样的信息  单根继承结构 所有的类都继承自单一的基类,Object.在单根集成结构中的所有对象都具有一个公用接口,所以他们归根到底都是相同的基本类型.单根集成

JAVA编程思想笔记--第一章对象导论

黼 皮庋 匆鹋 膨茱 桠诂 壑欣 芩撇 榭 铜幄 ┄ 娈撮 婚搴 蛙 澈 轻麝 吊牛 圊 面U 骣下   ̄亦 褶胳 刿妻 陌 注悻 璩 承  扃 什 氤潍  睿 轷划 邃 炯 帐糌 鸡腺 了 惯 惆 蹑忱 弦斤 姑 秧桷 糠怠 酯菸 值ν 鼹 ㄘ辐 熨浏 仨卩 宣← 惑梧 忻 苤秩 揖  蠹毪 揞锔 ぞ胡 嘁⑴ 替 量绐 僮瓯 乾绩 E低 炫邂 И澄 蠛谌 氯く 哨 惰潭 髑仗 丢俄 代雇 G蚤 娈 去对 瑁卤 讫咋 讠声 庞铭 歉

学习java编程思想 第一章 对象导论

一.面向对象的五个基本特性: 1.万物皆为对象.将对象视为奇特的变量,他可以存储数据,还可以要求它在自身上执行操作. 2.程序是对象的合集,他们通过发送消息告诉彼此所要做的. 3.每个对象都有自己的由其他对象所构成的存储.换句话说,可以通过创建包含现有对象的包的形式来创建新类型的对象. 4.每个对象否拥有其类型.每个类最重要的特性就是"可以发送什么样的消息给它". 5.某一特定类型的所有对象都可以接受同样的消息. 二.在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为&qu

Thinking in Java(第四版)—— 第一章 对象入门

前面几节基本是把java 的知识点描述了一遍,个人觉得重点的是项目开发过程的几个阶段这一节,所以就多读了几遍,看书就是为了实际的运用,把理论和实际业务联系起来,来解决实际的问题. 现在我们来看看项目开发过程的几个阶段. 阶段0.拟出一个计划.(整个的计划) 阶段1.要制作什么?(需求分析) 阶段2.如何创建.(UML流程图) 阶段3.开始创建.(开发) 阶段4.校订        (优化) 阶段5.计划的回报 (做计划有可能成功)

C++对象模型——关于对象(第一章)

第一章    关于对象 在C语言中,"数据"和"处理数据的操作(函数)"是分开声明的,也就是说,语言本身并没有支持"数据和函数"之间的关联性.我们把这样的程序方法成为程序性,由一组"分布在各个以功能为导向的函数中"的算法所驱动,它们处理的是共同的外部数据.举个样例,假设声明一个struct Point3d,像这样: typedef struct point3d { float x; float y; float z; } Po

【深度探索C++对象模型】第一章 关于对象

第一章 关于对象(Object Lessons) -- 本书作者:Stanley B.Lippman 一.前言 什么是 C++ 对象模型:简单的说,就是 C++ 中面向对象的底层实现机制. 本书组织: 第 1 章,关于对象(Object Lessons),介绍 C++ 对象的基础概念,给读者一个粗略的了解. 第 2 章,构造函数语意学(The Semantics of Constructors),构造函数什么时候会被编译器合成?它给我们的程序效率带来了怎样的影响? 第 3 章,Data语意学(T