JAVA基础总结(2)—— JAVA中的类与对象

前言

在前面的章节中,我们介绍了面向对象编程思想,以及在JAVA中面向对象表现形式以及JAVA中基本数据类型的概念。本节我们主要详细讲解JAVA中的类与对象

必须由你创建所有对象

我们知道,程序即对象的集合,面向对象编程即使用对象的一个过程。而使用对象,需要先定义类,并通过类通过new关键字进行实例化生成对象。JAVA中实际上已经提供大量现成的类(已经定义好的类),但是我们仍需定义我们编程过程中所特定需要的类,简单理解:JAVA编程就是不断创建类,不断实例化对象。 以下是通过实例化JAVA中现成的字符串类String,生成一个“不积跬步,无以至千里。”这段诗句(verse)的对象:

String verse = new String("不积跬步,无以至千里。")

如何定义JAVA中的类

前面在讲面向对象编程里说过,对象由数据元素(属性)和行为(功能)组成,而类是对对象的抽象,因此类中包含属性和功能(JAVA中称为方法)。因此,我们在定义类的时候,不仅要确定类名称,还要定义类的属性(又称数据成员、成员变量)和方法(又称成员函数)。

JAVA类的基本结构

class [类名] {
	//成员属性的定义:
	[类型/类名] [成员属性名];
	...

	//构造方法定义:
	[类名] ([参数列表]) {
		[构造方法的具体实现]
	}

	//方法的定义:
	[返回值类型/类名] [方法名] ([参数列表]){
		[方法的具体实现]
	}
	...
}

在以上结构表达试中,[]代表要写出指定的内容,//后面的内容为注释(这里作标记作用)。我们这里通过对人进行抽象形成人类,根据以上结构,看在JAVA中如何通过代码定义人类:

class Human {

	String name;

	char sex;

	short age;

	int weight;

	Human(String name, char sex, short age, int weight){
	}

	void say(String words){
	}
	void run(){
	}

}

以上我们定义了一个简单的类,类名为Human(人类),其成员属性为姓名(name)、性别(sex)、年龄(age)、体重(weight),方法(行为)为说话(say)、奔跑(run)。

成员属性

即类的属性,一个类可以定义多个属性,每个属性都可以为其指定基本类型和类(所属类型),因为类的属性实际上也是一个对象,每个对象都拥有其类型。我们这里要注意是的基本类型是两个概念,基本类型是JAVA中表示变量(成员属性又可称为成员变量)的基本类型(如char表示其为一个字符,short表示短整数型、int表示整数),它表示的是数据的基本类型,仅仅只是关键字而非类。而String便是一个类,表示一个字符串。关于基本类型会在后面章节进行讲解。

方法

类中的方法定义主要由,返回值类型、方法名、方法的参数列表(可有可无)、方法的具体实现(方法体)构成。以下我们一一称述它们的概念:

返回值类型: 返回值即是方法产生的结果数据,返回值类型就是这个结果数据所属的类型,可以用类名指定也可以用基本数据类型指定。以上类定义中我们指定void型,它表示没有返回值,或者说当前方法并不需要产生一个具体的结果数据。

方法名: 就是方法的名字,它表示所属当前类的对象所有的行为。

参数列表: 参数指的就是方法可以就收的消息,方法根据接收的消息完成指定的动作,这实际上就是一种接口与消息的概念,在上节我们有讲到过。而参数列表指的就是可以有多个参数,参数的定义由参数类型(类名或者基本数据类型)和参数名组成,中间由空格分开,多个参数由逗号分隔。

方法体: 即大括号结构,方法的具体实现代码就写在大括号里面,由于还没有到足够学习具体的JAVA编程,所以上方法体中就没有写,实际上方法体可以为空(有返回值类型的除外)。

有返回值的方法

上面人类的定义,我们只定义了两个没有返回值类型的方法(say、run)。现在我们给人类再加上身高这个属性(int height;),然后在加上一个获取身高体重比(体重指数:bmi)的方法:

double bmi (){
	return height / weight;
}

以上就是一个有产生具体结果数据的一个方法的示例,通过关键字返回具体结果,以上通过关键字return返回当前身高与体重的比例,返回值类型为double,它是一个基本数据类型(不是类),表示双精度浮点型(拥有更高精度的小数类型)。

类的实例化

我们之前讲到过,在面向对象编程里,编程就是使用对象的过程。一旦类已经定义了好了之后,我们就可以随心所欲的通过实例化生成对象了。JAVA中类实例化通过关键字new实现。

public Human(String name, char sex, short age, int weight){
}

在实例化生成对象之前,我们看下上面这部分代码,这里实际上也是类的一个方法(省去了方法体中方法的具体实现代码),方法的名字和类的名字一样,它在JAVA中称为类的构造方法,这里我们暂时不作深入了解,它的作用就是在类实例化的时候设置类属性的值。简单的认为,在我们现实生活中只要确定了一个人的具体姓名、性别、年龄、体重他就是可以确定一个具体的人。同样的,在JAVA代码中,进行类的实例化的时候设置类中属性的具体值,就可以确定具体的一个对象。以下为类的实例化代码。

Human zhangSan = new Human(“张三”,'男'30128);

以上就是在生成张三对象的代码,括号内按顺序给定类属性的值。

通过类属性值的不同,可以实例化出多个不同的对象:

Human liSi = new Human(“李四”,'女'27108);
Human wangWu = new Human(“王五”,'男'30115);

以上实例化出了李四、王五对象。

方法的调用

在实例化出了对象之后,我们就可以通过调用对象的方法进行一个对象使用。比如我们要李四说一段话,让张三奔跑:

liSi.say("你好");
zhangSan.run();

在JAVA中,对象方法的调用通过:

对象名称.方法名称(参数列表[或者说传达的消息]

这样一个格式来进行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值