Java面向对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java面向对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3374字,纯文字阅读大概需要5分钟。
内容图文
![Java面向对象](/upload/InfoBanner/zyjiaocheng/855/3c49ffa2930a44178b27cf9e8184b759.jpg)
文章目录
1、概述
Java提供了定义类、成员变量、方法等最基本的功能。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java中使用类(class)的构造器来创建该类的对象(object,也被称为实例,instance)。
对一个类定义而言,可以包含三种最常见的成员:构造器、成员变量和方法。类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但是static修饰的成员不能访问没有static修饰的成员。
成员变量用于定义该类或该类的实例所包含的状态数据,方法则用于定义该类或该类的实例的行为特征或者功能实现。构造器用于构造该类的实例,Java通过new关键字来调用构造器,从而返回改类的实例。
若方法声明了返回值类型,则方法体内必须由一个有效的return语句,返回的变量或表达式类型必须与声明的类型相匹配。若方法没有返回值,则必须使用void来声明。但是为什么构造器没有用void修饰,但是也没有返回值?简单地说,这是Java的语法规定。实际上,类的构造器是有返回值的,当使用new关键字调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值,因此构造器的返回值类型总是当前类,无须定义返回值类型。但是必须注意:不要在构造器里显式使用return来返回当前类的对象,因为构造器的返回值是隐式的。
构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此Java语言提供了一种功能,若没有为一个类编写构造器,则系统会为改类提供一个默认的构造器。并且一旦为程序编写了构造器,则系统不再为改了提供默认的构造器。[若为构造器定义了返回值类型或使用void声明构造器没有返回值,编译时并不会出错,但Java会把这个所谓的构造器当成普通的方法来处理——它就不再是构造器了]
static修饰的成员表明它属于这个类本身,而不属于该类的单个实例,因为通常把static修饰的成员变量和方法也称为类变量、类方法。相反,不使用static修饰的普通方法、成员变量则属于改类的单个实例,而不属于该类。因为通常把不使用static修饰的成员变量和方法也称为实例变量、实例方法。由于static是静态的意思,有时也把static修饰的成员变量和方法称为静态变量和静态方法。反之称为非静态变量和非静态方法。静态成员不能直接访问非静态成员。
虽然绝大部分资料都喜欢把static称为静态,但实际上这种说法很模糊,无法说名static的真正作用。static真正的作用就是用于区分成员变量、方法、内部类、初始化块这四种成员到底是属于类本身还是属于实例。在类中定义的成员,static相当于一个标志,有static修饰的成员属于类本身,没有static修饰的成员属于该类的实例。
与前面介绍的数组类似,类也是一种引用数据类型,因此程序中定义的类的变量实际上是一个引用,它被存放在栈内存中,指向堆内存中存放的真正的对象(也称实例),即引用变量只是指向该堆内存里的对象。从这个角度看,引用变量与C语言里的指针很像,它们都是存储一个地址值,通过这个地址来引用到实际对象。实际上,Java里的引用就是C里的指针,只是Java语言将指针封装起来,避免开发者进行频繁的指针操作。
Java提供了一个this关键字,this关键字总是指向调用该方法的对象。this作为对象的默认引用分两种情形:
- 构造器中引用该构造器正在初始化的对象;
- 在方法中引用调用该方法分对象。
this关键字的最大作用就是让类中一个方法,访问该类中的另一个方法或实例变量。一般来说,如果调用static修饰的成员时省略了主调,那么默认使用改类作为主调;如果调用没有static修饰的成员时省略主调,那么默认使用this作为主调。【调用成员变量、方法的对象称为主调】
在Java语言里,方法不能独立存在,方法必须定义在类里。方法在逻辑上要么属于类,要么属于对象。因此执行方法时,不能独立执行,执行方法时必须使用类或对象来调用。那为什么在同一个类中,不同方法之间相互调用时,不就可以直接调用吗?其实上面已经解释过,省略主调只是一种假象,若调用方法为普通方法,则默认使用this作为调用者;若调用方法为静态方法,则默认使用类作为调用者。即表面看起来是独立执行,但实际上还是使用this或类来作为调用者。
内容总结
以上是互联网集市为您收集整理的Java面向对象全部内容,希望文章能够帮你解决Java面向对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。