【Android安卓教学-零基础到高薪就业】面向对象(2)

1.类和对象

Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用型变量。也就是说,所有类是引用数据类型。

1.1定义类

面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体,从这个意义上来看,我们日常所说的人,其实应该是人的对象,而不是人类。

Java语言是面向对象的程序设计语言,类和对象是面向对象的核心。Java语言提供了对创建类和创建对象简单的语法支持。

Java语言里定义类的简单语法如下图。

在上面的语法格式中,修饰符可以使publicfinal,或者完全省略这两个修饰符,类名只要是一个合法标识符即可,但这仅仅满足的是Java的语法要求;如果从程序的可读性方面来看,Java类名必须是由一个或多个有意义的单词连缀而成,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。

对一个类定义而言,可以包含三种最常见的成员:构造器、属性和方法,三种成员都可以定义零个或多个,如果三种成员都只定义零个,就是定义了一个空类,没实际意义。

类里各成员之间的定义顺序没有任何影响,个成员之间可以相互调用,但需要指出的是,static修饰的成员不能访问没有static修饰的成员。

属性用于定义该类或该类的实例所包含的数据,方法则用于定义该类或该类的实例的行为特征或功能实现。构造器用于构造该类的实例,Java语言通过new关键字来调用构造器,从而返回该类的实例。

构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常将无法创建实例。因此,Java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。

定义属性的语法格式如下。

{修饰符} 属性类型 属性名 {默认值};

属性语法格式的详细说明:

》》 修饰符:修饰符可以省略,也可以是publicprotectedprivatestaticfinal,其中publicprotectedprivate三个最多只能出现其中之一,可以与staticfinal组合起来修饰属性。

》》 属性类型:属性类型可以使Java语言允许的任何数据类型,包括基本类型和现在介绍的引用类型。

》》 属性名:属性名则只要是一个合法的标识符即可,但这只是从语法角度说的;如果从程序可读性角度来看,属性名应该由一个或多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不需要使用任何分隔符。

》》 默认值:定义属性还可以定义一个可选的默认值。

属性是一种比较传统、也比较符合汉语习惯的说法。在Java的官方说法里,属性称为Field,因此有的地方也把属性翻译成字段。

----------------------------------------------------------------------------------------------------------

定义方法的语法格式如下图。

方法语法格式说明:

》》 修饰符:修饰符可以省略也可以是publicprotectedprivatestaticfinalabstract,其中publicprotectedprivate三个最多只能出现其中之一;abstractfinal最多只能出现其中之一,他们可以static组合起来修饰方法。

》》 方法返回值类型:返回值类型可以是Java语言允许的任何数据类型,包括基本类型和引用类型;如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,这个变量或表达式的类型必须与此处声明的类型匹配。除此之外,如果一个方法没有返回值,则必须使用void来声明没有返回值。

》》 方法名:方法名命名规则与属性命名规则基本相同。

》》 形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组“参数类型 形参名”组合而成,多组参数之间以英文逗号(,)隔开,形参类型和形参名之间以英文空格隔开。一旦在定义方法时指定了形参列表,则调用该方法时必须传入对应他的参数值---谁调用方法,谁负责为形参赋值。

方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总是先执行,排在方法体后面的语句总是后执行。

static是一个特殊的关键字,它可用于修饰方法、属性等成员。static修饰的成员表明它是属于这个类共有的,而不是属于该类的单个实例,因为通常把static修饰的属性和方法也称为类属性、类方法。不使用static修饰的普通方法、属性则属于该类的单个实例,而不是属于该类。因为通常把不使用static修饰的属性和方法也称为实例属性、实例方法。(由于static在英文直译就是静态的意思,因此有时也把static修饰的属性和方法称为静态属性和静态方法,把不使用static修饰的属性和方法称为非静态属性和非静态方法,静态成员不能直接访问非静态成员。)

构造器是一个特殊的方法,定义构造器的语法格式与定义方法的语法格式很像,定义构造器的语法格式如下图。

构造器语法格式说明如下:

》》 修饰符:修饰符可以省略,也可以是publicprotectedprivate其中之一。

》》 构造器名:构造器名必须和类名相同。

》》 形参列表:和定义方法形参列表的格式完全相同。

值得指出的是,构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值。如果为构造器定义了返回值类型,或使用void定义构造器没有返回值,编译时不会出错,但Java会把这个所谓的构造器当成方法来处理。

下图定义一个Person类。

上面的Person类代码里没有定义构造器,则系统将会为它提供一个默认的构造器,系统提供的构造器总是没有参数的。

 

联系QQ:3163173005

联系电话:075526402586

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值