【JAVA修行之路】--“斩杀”对象和类

对象和类

理解对象

​ 首先思考一个问题:世界是由什么组成的?化学家会说:“世界当然是有分子、原子、离子等化学物质组成。”画家会说:“世界是由各种不同的色彩组成。”但如果你是一个分类学家,你会说:“世界是由不同类型的物与事构成。”不同的职业决定了看事物不同的角度,作为一个面向对象的JAVA程序猿,我们要站在分类学家的角度去思考问题。我们看到的每一个东西都可以称为一个对象,在JAVA的世界里:万物皆对象!!!

面向对象(Odject-Oriented,OO)思想的核心就是对象(Object)。对象表示现实世界中的实体,因此,面向对象(OOP)能够很好将现实中遇到的概念模拟到计算机程序中。

对象的属性和方法

​ 构成对象的两个最重要的因素就是特征和动作.

例如:

收银员顾客
特征:姓名:杰克姓名:朱丽叶
年龄:35年龄:28
体重:60千克体重:52千克
动作:收款,打印账单购物

​ 同样,在软件技术领域,我们用软件对象来模拟现实世界的实体,因此,软件对象都具有状态和行为.对象的状态就是现实世界中对应的属性特征,对象的行为就是现实世界中对应实体能执行的动作.

对象就是存在的具体实体,具有明确定义的状态和行为.在JAVA中,对象的状态被分别储存在一些变量里,而对象的行为通过定义方法来实施.

封装

​ 顾名思义,封装(Encapsulation)指的是将东西包装在一起,然后新的完整的形式呈现.封装是面向对象的基本特征之一,之后我会详细一点解释。*😊😁

举个例子,一辆法拉利不能跑或者没有华丽的外表,还能称为高贵的超跑吗?当然不能,这两者是缺一不可的.可见,对象也有封装的特征.对象的属性和方法必须被封装在一起.

理解 类

​ 上面提到的顾客"朱丽叶"仅仅是这类人群中的一个实例,另外迪迦奥特曼,赛罗奥特曼等等,他们都是奥特曼中的一个实例.他们都有某些相同的属性和特征,比如都很大,都能发射光线,所以他们被归为同一类.

类是具有相同属性和共同行为的一组对象的集合,类定义了对象将会拥有的特征(属性)和行为(方法)

类的属性

​ 对象或实体所拥有的特征在类中表示时称为类的属性。例如:每一个顾客都拥有姓名、年龄和体重,这是所有顾客共有的特征。但是每一个对象的属性值又不相同。例如,顾客妹妹和顾客贝克汉姆都具有体重这个属性,但是他们的体重值是不相同的。

类的方法

​ 对象执行的操作称为类的方法.比如:顾客类的对象都具有的行为是"购物",因此,购物就是类的一个方法.

对象和类的区别

关系

​ 简单的说, 类定义了一个概念模型,而对象是真实的实体.

​ **类是描述实体的"模型"或"原型".它定义了属于这个类的对象所应该具有的状态和行为.**比如:用模子做球状冰淇淋, 制作球状冰淇淋的模子是类,它定义了如下信息:

  • 球状半径
  • 口味

​ 使用这个模子做出的不同口味和颜色的球状冰淇淋是对象,它们可能是可可味、草莓味、椰子味、香芋味等。在Java面向象编程中,我们就是用你定义的类模型造这个类的一个实例,也就是造类的一个对象。因此,我们通常说“为类创建一个对象”,也叫作“为类创建一个实例”.

​ 类是实体对象的概念模型,因此通常是笼统的、不具体的.

类是对象的类型

​ 到目前为止,我们已经学习了不少数据类型:整型(int)、双精度浮点型( double)、字符型(char)、布尔型( boolean)、字符串( String)。这些都是Java语言已经给我们定义好的类型,当我们进行运算时,只需找到匹配的数据类型来声明变量即可。那么,如果我们想要描述顾客“朱丽叶”,她的数据类型又是什么呢?整型、字符型还是字符串型?当然都不是。“朱丽叶”的类型就是“顾客”也就是说,类就是对象的类型.
​ 事实上,定义类就定义了一个自己的数据类型。例如:“顾客”、“人”“动物”。但是不同的是,类类型和整型类型所不同的是:类类型具有方法.“顾客"类的方法"购物”,“奥特曼"类的"打怪兽”.

JAVA的类模板

public class <类名>{
    //定义属性部分
    属性1类型  属性1;
    属性2类型  属性2;
    ......
    //定义方法部分
    方法1;
    方法2;
    ....
}

其中,class是创建类的关键字,在class的前面有一个public,表示"公有"的意思.在class后面要给定义的类命名,类的主题写在{ }中.命名类时也要遵守一定的规则.

  • 不能使用JAVA中的关键字
  • 只能是下划线"_" , " " 符 号 , 字 母 开 头 , 后 面 可 以 接 任 意 多 的 下 划 线 " " , " "符号,字母开头,后面可以接任意多的下划线"_" , " ",,线"",""符号,字母和数字
  • 如果类名由多个单词构成,则每个单词首字母均大写
  • 应该使自己的类名简洁而富有描述,建议使用英译单词

如何定义类

定义类名

编写类的最外层框架

1,无参构造

public class 类名{
    //程序体
}

2.有参构造

public class 类名(参数列表){
    //程序体
}

参数列表,需要处理的参数放进去。具体处理写在程序体里面,没有需要处理的参数就不传参,空着就行。

编写类的属性

​ 在类中的数据和下面要讲的方法统称为类成员。其中,类的属性就是类的数据成员。我们通过在类的主体中定义变量来描述类所具有的特征(属性),在这声明的变量称为类的成员变量。

编写类的方法

​ 类的方法描述了类所具有的行为,是类的方法成员。我们可以简单地把方法理解为独立完成某个功能的单元模块.

示例

public class School{
    //定义中心的属性
    String schoolName;//中心名称
    int classNum;//教师的数目
    int labNum;//机房的数目
    //定义中心的方法
    public String toString(){
        return schoolName + "培训中心"+ "\n"+"配备:"+classNum+"间教室"+labNum+"间机房"
    }
}

上面示例定义了一个 School类,并且定义了3个成员变量: schoolname,class Num, labium。另外,定义了一个类的方法,方法名是 tostring()。这是一个非常特殊的方法,通常我们使用这个方法来显示这个类的相关信息。这里我们定义 tostring方法来显示中心的信息:中心的名称以及教室和机房的配备情况.

public class toSring(){
    return 自定义字符串;//方法体
}

编写 toString()方法时,你只需要在“自定义字符串”部分写出你要打印输的类相关的信息就可以,其余部分全部不变。这里 tostring是方法名,是一个固定的方法名,包括每一个字母的大小写都完全不要更改。 return是“返回”的思,它是Java的关键字,这里指个功能模块将返回一个自定义的字符串.

创建和使用对象

​ 一个School类定义好了,就可以根据定义的模子创建对象了.由类生成对象,称为类的实例化过程.一个实例就是一个对象,一个类可以生成多个对象.

创建类对象的语法

类名 对象名 = new 类名( );

在创建类的对象时,需要使用new关键字.

School center = new School( );

​ 这里变量 center的类型就是自定义类型 School。使用new创建类的对象时,我们并没有给它的数据成员赋一个特有的值.考虑到每个对象的属性值可能是不一样的,因此,在创建类的对象之后,我们再给它赋予一个特殊的值。那么如何做呢?在Java中要引用对象的属性和方法,需要使用点操作符“.”来访问。对象名在圆点左边,而属性或方法的名称在圆点右边.

引用属性和方法的语法

对象名 . 属性 //引用对象的属性

对象名 . 方法名() //引用对象的方法

​ 例如:创建了对象center后,我们可以给对象赋值了

center.name = "北京中心"  //赋值
center.toString();     //引用对象的方法

在定义类时,如果没有给属性赋初值,Java会给他一个默认值,如下表:

类型默认值
int0
double0.0
char‘\u0000’
booleanfalse
Stringnull

面向对象的优点

  1. 程序设计是要模拟现实世界中的人、事以及要解决的问题,使之能够好地用计算机来解决现实问题。面向对象程序设计能够让我们使用“类”来模拟现实世界中实体的特征和行为,也就是试图用软件对象去模拟现实对象,从而完
    全实现模拟现实世界。
  2. 对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注内部如何实现。在解决问题时,我们定文了两个类:类 Schoot 和类 InitialschooSchool目的是定义类的属性和方法。 Initialschool目的是使用已定义的类,如图

在这里插入图片描述

图1 在一个类中调用另一个类的属性和方法

  1. 可以通过类的模板,创建n个类的对象,增加了重用性。比如:由School类可以创建“北京中心”、杭州中心“、”上海中心“等。

补充知识

在这里插入图片描述

冷知识:String类型事实上是Java开发人员使用关键字class给我们定义的一个类,因此他也有属性和方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰非一日之寒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值