java基础之类对象实例属性方法等概念理解

Posted 涂宗勋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之类对象实例属性方法等概念理解相关的知识,希望对你有一定的参考价值。

在之前的文章里,讲过一些java基础概念,并写了一个简单的java入门代码,通过这些代码,对类和方法的定义做了部分说明。
java基础介绍及第一个java程序
如果是了解java的同学,可能就没什么问题,但是如果是初次接触,可能就会对什么是类、什么是方法这些概念感到茫然。
那么这一篇就在之前的基础上,对更多的一些相关概念进行解释。

类和对象(实例)

编程语言和其他很多语言一样,都是来源于生活的,所以java里边的一些名词和概念实际上也都是源于生活。

首先,我们在生活中肯定听过很多关于“类”的名词,例如人类、垃圾分类,实际上java中所谓的类,跟这个是一样的道理。
什么是人类,人类是人的总称。
什么是人呢?可能我们脑海中就能浮现出一些画面,比如耳朵、眼睛、鼻子、嘴巴、眉毛、直立行走、会说人类语言、没有浓密的毛发等等。
也就是说根据人类的进化和发展,慢慢根据这些特征总结出了共性,然后把符合这些共性的东西统称为人类。
而java中的类,实际上也是这样的,把具有某些共性的内容放在一起定义,遵循之前说的定义规则,然后就成了java类。

对象

与此同时,在思考上边的问题时,我们脑海浮现出上边这些特征的时候,可能还会出现某一个具体的人,可能是自己,也可能是其他人。
每一个人想到的具体的人肯定是不同的,都有耳朵,但是耳朵不同,都有眼睛,但是眼睛不同。
那么这些具体的人,就称作人类的对象,或者称作人类的实例。
也就是说,类是对象的抽象和统称,对象是类的实例,类可以生成具体的对象。
在java的世界里有一个概念,叫做一切皆对象,因此实际上java中的类也是对象,类这个概念是java类的统称,但是具体到某一个java类的时候,它就是一个对象。
因此也可以说,java类的思想来源于生活,但并不是说java类一定是和生活一一对应。
属性和方法
java类定义的基本规则,之前的文章里讲过,也就是如下这样:

访问权限修饰符 class 自定义的类名

例如上边说得人类,可以定义为:

public class people


但是如上边所说,类应该是具有某些共性事物的抽象,所以如果仅仅是上边这样的定义就没有意义,因为里边并没有任何所谓的共性。
这里说的共性,可以分为特征和行为,例如耳朵、眼睛、嘴巴这些趋于固定的特征就称作属性,像说话、行走这些动态的行为就称作方法。

属性

那么对于人类的的java类定义,加上属性的话,就可能是这样:

public class People 
	public String eye;
	protected String ears;
	String mouth;
	private String nose;

但是这里实际又引入了一个新的规则和名字,即数据类型。
在java中要定义一个java类的属性,必须为这个属性指定一个数据类型,暂且先记住这个规则即可,后边会专门讲这方面的内容。
除此之外,属性也是有访问权限修饰符的,修饰符即上边那四个,其中没有显示定义的就是默认。

我们说类是能区分某一类事物的抽象定义,那么按理说应该是可以通过这种定义来判断某一个具体事物的,例如看到一个人,我们可以根据人的类定义来判断出这是一个人类。
但是如果从上边我们定义的人类来看,似乎并不能解决这个问题,仅通过眼睛、耳朵、嘴巴、鼻子这四个特征,很明显是不能区分出到底是人还是猴子或者猩猩,因为大家在这些方面的特征几乎一样。
因此,实际上一个java类的定义不是绝对的,不同的程序员对同一个事物的类的定义都可能是不同的,这就涉及到设计。
我们说的能根据类定义直接判断某个事物,这其实是一个理想状态,只有设计的非常好的时候才能达到这种效果。
就如上边这个定义,与其说他是人类的定义,不如说这是个动物的定义,因为它不能明显的区分出是不是人,但是却可以区分出是不是动物。

方法

上边也说了,一个类除了定义属性,还会定义方法,例如说话、行走等,方法的定义规则在之前也说过,这里就不在多说了,仅举一个简单例如,如:

public class People 
	public String eye;
	protected String ears;
	String mouth;
	private String nose;
	
	public void say()
		System.out.println("我是一个人");
	

需要额外说明的是,和属性一样,方法的定义也是因人而异,也涉及到设计问题。
因此可以说,java软件开发入门不难,不难的是基本的规则。就像对类、属性、方法的定义,规则就这么一点.
但是实际写代码编程序的时候,能不能设计出好的类,那就不一定了,这个对于不同的人就会有不同的难度。
有的人可能就把人类定义成我上边写的这样,但是有的人可能会把我上边这种定义为动物。
当然了,在实际java软件开发的时候,可能并不能单纯的根据具体的类定义判断好坏,而是还需要结合实际的业务场景。

以上是关于java基础之类对象实例属性方法等概念理解的主要内容,如果未能解决你的问题,请参考以下文章

java基础之类对象实例属性方法等概念理解

java基础之数据类型及变量

java基础之数据类型及变量

java基础之数据类型及变量

Java基础之类的基础

15python面对对象之类和对象