龙空技术网

我的Java Web之路-类

普通的码农 178

前言:

此时咱们对“类是java程序的基本要素对不对”大约比较珍视,大家都想要剖析一些“类是java程序的基本要素对不对”的相关内容。那么小编在网摘上搜集了一些有关“类是java程序的基本要素对不对””的相关知识,希望各位老铁们能喜欢,姐妹们一起来学习一下吧!

本系列文章旨在记录和总结自己在Java Web开发之路上的知识点、经验、问题和思考,原来已经分享在我的CSDN博客,现在分享在头条,希望能帮助更多码农和想成为码农的人。版权声明:本文为CSDN博主「普通的码农」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:

目录介绍类属性方法小结介绍

上一篇简单解释了Java程序的执行机制,也总结了Java程序开发的主要流程(编辑源代码、编译、执行)。

本篇讲讲Java程序开发的第一步 - 编辑源代码。那么该如何编辑呢?答案当然是遵从Java语言规定的语法啊。

我们先分析一下我们写的第一个Java程序,找出Java语法的核心要素,这样才足以让我们继续编写其他的具备更复杂更实用功能的Java程序,而不是仅仅限制在打印“Hello world!”。

在这里先再一次给出第一篇的第一个Java程序:

public class HelloWorld {	public static void main(String[] args) {		System.out.println("hello world!");	}}

首先我们看代码的第一行,它定义了一个类,这就是Java语法的核心要素!简单吧,没错,Java语法的核心要素就是类。Java程序开发就是不断的定义各种各样的类,只要你想把某些东西定义为类,你就可以把它定义为类(当然,关于如何定义出更好的类,人们在实践中也总结了很多经验和原则,并形成了一套理论、科学,就叫做面向对象方法论,这里先不讨论,软件是一门实践科学,很需要方法论)。

本质上,类是一种代码的组织方式而已,只不过这种组织方式可能更符合人的思维方式。怎么说是更符合呢?举个最简单的例子,人类人类,在人的脑子里,人其实就是一个类。人脑天生就会把同一种东西抽象为一个概念,在这里,人脑会意识到每一个人都有相同的特征(生物特征有头、躯干、四肢、五脏六腑,会说话、直立行走等等;社会特征有姓名、年龄、身份等等),于是自然而然就形成人这个概念。所以,Java程序开发里面定义类,首先要将事物抽象成各种概念,然后再用Java语言写下来而已。可以说,定义类的过程就是对事物进行抽象的过程,一个类其实就是人脑里面的一个概念,是不是很符合人的思维方式呢。

好,假设我们已经抽象出来了一个类,那应该怎么用Java语言写下来呢?使用class这个Java语言规定的关键字(就是你不能使用这个单词用做其他用途了)加一对花括号就可以了,还有别忘了给你抽象出来的类加上一个名字(简称类名):

class <这里是类名> {}

我们的第一个Java程序就定义了一个类名叫HelloWorld的类。类名通常是字母和数字组成的,而且遵循大家约定俗成的规范,当然这些规范不属于Java语法,只是为了代码后续阅读和理解起来容易一些。最常用的一条规范就是:

类名首字母应该大写,尽量是多个单词且每个单词首字母都是大写,这些单词应该组成一个名词,能表达这个类代表的概念。

这样看来,我们的第一个Java程序定义的类叫HelloWorld其实是不太合适的。再举一个例子,为“人”这个抽象出来的概念定义一个类:

class Person {}
属性

上面说到一个类就是一个概念,这个概念描述的事物都具有相同的特征,在Java里面(似乎在客观世界里也是如此),特征分为两类:状态特征和行为特征。

HelloWorld这个类有一个行为特征,就是第二行到第四行定义的方法;而Person这个类还没有任何特征,当然这是允许的,只不过这样抽象出来的类又有什么用呢。所以我们需要继续为Person这个类抽象出它的状态特征和行为特征。

状态特征是事物的静态特征,比如人有身高、体重、姓名、身份证号码等。在Java里面可以定义属性(或者叫字段)来描述这些特征。状态特征会不断变化,因此属性的值也就不断变化。最简单的属性定义如下:

<属性类型> <属性名字>;

注意:最后面的分号必须得加上,这是Java语法规定的,表示这是一条语句。

属性类型描述了该属性的值是什么类型的,比如是数字类型的还是字符串类型的,甚至可以是另外一个类。在Java里面,属性类型有下面几类:

基本类型,包括: byte、short、int、long、float、double、char、boolean。一旦定义了这些类型的属性,当Java程序执行的时候就会为属性分配一定大小的内存用来保存属性的值,每个基本类型占用的内存大小暂且不提。同时,每个基本类型也有一定的取值范围,比如,byte类型的属性占内存大小为1个字节,因此其取值范围只能是-128~127。特别提一下boolean类型的取值范围只有true和false两个值。引用类型,包括:类和数组。特别提一下,字符串类型已经被Java实现成了一个类,类名是String。至于为什么叫引用类型,这跟这种类型的数据在内存里如何存储有关系,这里暂且不提。

属性名字跟类名一样,只要是非Java关键字且是规定字符组成的就行,通常是字母和数字。这里也跟类名一样有约定俗成的规范:

属性名首字母是小写,尽量是多个单词且每个单词(除了第一个单词)首字母都是大写,这些单词应该组成一个名词,能表达该类的某个状态特征即可。

比如,为上面的Person类添加姓名、年龄、身份证号码和拥有多少钱四个属性:

class Person {	String name;	int age;	String idNumber;	double money;//单位是元,是人民币}

注意:“//”后面的句子是Java语法里面的注释,它并不需要发给CPU执行,而是起到一种解释的作用,主要是为了程序代码的可读性和可维护性。这种注释是单行的。

Java里面还有其他两种注释:

包含在“/*”和“*/”之间,通常写成多行:

/* 这里是注释*/
包含在“/**”和“*/”之间,这跟上面一种很像,就多了一个星号,这种注释可以使用JDK里的工具(javadoc)提取出来,生成一份文档。有了这份文档,就可以把它交给客户,客户就可以知道你的程序里都有哪些类,这些类提供了哪些属性和方法。当然,你不生成文档的话,其实和上面的没什么区别。
/** 这里是用作文档的注释*/
方法

HelloWorld这个类有一个行为特征,就是第二行到第四行定义的方法:

	public static void main(String[] args) {		System.out.println("hello world!");	}

这个行为就是打印出“hello world!”。

行为特征是事物的动态特征,表示该事物能产生什么行为,比如人会说话、吃饭、走路等。在Java里面可以定义方法来描述这些特征。行为特征是不会变化的,但它包含一定的动作,而这些动作通常会改变该事物状态特征,也可能需要一些外部数据才能执行,执行完成之后可能会给外部一个响应。我们把这些动作叫做业务逻辑或逻辑。最简单的方法定义如下:

<响应的类型> <方法名字>(<参数类型1> <参数名字1>, <参数类型2> <参数名字2> [, 这里是可能有的其他参数]) {	//这里是方法体,根据抽象出来的概念,编写一个一个Java语句}

其中花括号前面的部分就叫做方法签名,花括号及其里面的代码就叫做方法体。

方法名字也有约定俗成的规范:

首字母是小写,尽量是多个单词且每个单词(除了第一个单词)首字母都是大写,这些单词应该组成一个动宾短语,能表达该类的某个行为特征即可。

比如,为上面的Person类添加一个买东西的方法(假定已经定义了一个表示产品这个概念的类Product):

class Person {	String name;	int age;	String idNumber;	double money;	Product buySomething(String productName, double productPrice) {		//这里是买东西的逻辑	}}

可以说,方法就是一个更高层的指令,便于人类理解的指令。

小结Java程序的核心要素就是类,本质上,它不过是组织代码的一种方式而已;编写Java程序的过程,就是不断的为你的需求抽象出一个一个类的过程,一个类就代表了一个概念;类具有属性和方法,用来描述概念的状态特征和行为特征;Java有两种数据类型:基本类型和引用类型;Java语句以分号结束;Java有三种注释;约定俗成的规范很重要,通常都要遵循,其实这个就被人们整理成Java编码规范,但它们不是Java语法的一部分。

标签: #类是java程序的基本要素对不对