java面向对象
Posted 果子儿酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面向对象相关的知识,希望对你有一定的参考价值。
1 类和对象的概念
学习Java语言必须掌握类和对象,这样可以从深层次理解Java这种面向对象的程序开发理念,从而更好更快地掌握Java的编程思想和方法。掌握类和对象是Java语言编程的基础。那么,到底什么是类和对象呢?
现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、书桌、计算机以及高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即动态部分与静态部分。静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,会包括高矮、胖瘦、性别以及年龄等属性。具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为,即动态部分。人类通过探讨对象的属性和观察对象的行为了解对象。
面向对象的编程思想力图使在计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能一致。 Class/ Object:类( class)和对象( object)是面向对象方法的核心概念。类是对一类事物进行描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
2.方法声明
方法(method)的声明包含方法头和方法体两部分,方法的声明格式如下:
1<修怖符>1< 返回类型> <方法名> (1参数列表])方法体
(1)方法声明包括方法头和方法体两部分,其中方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在花括号内的声明部分和语句部分,用于描述方法的功能。
(2)修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected 和publico
(3)返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void。
(4)参数列表,指定在调用时,应该传递的参数的个数和类型。参数列表如果包含多个参数,相邻的参数之间用逗号隔开,此处的参数在定义时并没有分配存储单元,只有在运行时间才分配,所以称为形式参数。方法也可以没有参数,称为无参方法。注意无参方法后面的一对圆括号不能省略。
(5)对于有返回值的方法,方法体中至少有条return 语句,形式为return (表达式)。当调用该方法时,表达式的值就是方法的返回值,方法返回值的类型应和表达式的类型一致。
(6)方法不能嵌套定义,即不能在方法中再声明其他的方法。
在程序中,方法是不可或缺的。通过使用方法可以完成特定的功能,方法一旦定义, 就可以在不同的程序中多次调用,这样可以增强程序的可读性和可重用性,提高编程的效率。
但对于初学者而言,使用方法时经常出现错误,尤其是在方法的声明和调用以及参数传递方面,下面我们将详细
3.可变形参方法
在最后一个形参的类型后增加
数民设形参可以接受多个参数值,多个参数值被当成数组传入。
可变方法的声明格式如下:
[<修饰苻>1<返回类型><方法名> (变量类型.变量名)方法体)
在花括号内的声明部分和语句部分,用于描述方法的功能。
(2)修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected 和public。
(3)返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void。
(4)变量类型为任意数据类型,在变量类型和变量名之间用..表示。其中..."不是省略号,而是定义参数
(1)只能出现在参数列表的最后。
(2) ...”" 位于变量类型和变量名之间,前后有无空格都可以。
(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组 ,在方法体中以数组的形式访问可变参数。
4.构造方法
1.构造方法的定义
在类定义中有一类特殊的方法, 此类方法的名称与类名完全一致, 在创建对象时用于对成员变量进行初始化,此类方法被称为构造方法。
2.构造方法的特点
创建-个构造方法( Construction method)和创建一个 其他方法的过程是相同的,但需要注意的是,类中的构造方法的名称必须与此类的名称完全相同;此外,构造方法不能有返回值,在构造方法的名称前面也不使用void关键字进行修饰。
那么,是不是在类中必须定义一个构造方法呢? 答案是否定的。因为,如果在类中没有创建用户自定义的构造方法,Java在对源文件进行编译时,会提供一个缺省默认的构造方法,缺省的构造方法没有参数,因此无法对成员变量 进行初始化。但需注意的是,如果类中有了用户自定义的构造方法后,Java 就不会给出缺省的构造方法。所以,用户如果想在程序中继续使用无参的构造方法,就必须在类中再定义一个无参数的构造方法。
实际上,构造方法是可以重载的,即可以在一个类中创建多个同名但参数不一样的构造方法。
以上是关于java面向对象的主要内容,如果未能解决你的问题,请参考以下文章