小白学JAVA《七》--- 对象的行为+数组

一、按值调用
当实际参数传递给形式参数时,实际参数的数据被复制给形式参数。在编程中,在方法调用之间复制数据的过程称为按值调用。
在Java中,一个很重要的特点是:变量要么是八种基础类型之一,要么是引用类型。如果实际参数是基础类型,那么它最大是64位(double或者long)。如果我们想传给方法的数据是一个很大的对象,那么请记住:不是对象被传入,而是对象的引用被传入。这个引用在大多数情况下是32位,并且不会超过64位。结果是引用被复制,而不是大量数据被复制。所以,在Java中,通过按值调用传递复制的最大数据是64位。在今天的计算世界中,复制64位的数据几乎不用考虑性能和开销。
假如我们确实要改变传递给方法的实际参数,只能通过其它的方法。我们已经知道,如果形式参数是一个对象的引用,那么,方法就可以用这个引用来做任何它想要对象做的事情(当然,这个取决于对象的成员变量和方法的访问修饰符)。方法可以改变被指向的对象的数据,调用对象中的方法。按值调用导致的唯一限制是方法不能改变引用的指向。

二、 方法重载
Java中允许方法被重载。当一个类有两到多个同名但是有不同参数列表的方法时,就是方法重载。多个方法有相同的名字看起来是不必要的,但是方法重载在Java及其他编程语言中使用却很频繁。

三、构造器
构造器是类中的一个特殊的方法,该方法在对象实例化时被调用。构造器的用途是当对象实例化时,初始化对象中的成员变量。
构造器与方法不同之处在于构造器必须满足如下两个属性:
1.构造器的名称必须与类名相同。
2.构造器不能声明返回值,也不能返回void。

每个类都必须有一个构造器。但是,从以前的示例我们已经知道,不添加构造器好像不会发生什么问题。这是因为,如果我们没有给类添加构造器,编译器会自动为我们添加一个默认构造器。那么,编译器怎么知道我们想让默认构造器干什么呢?编译器并不知道。实际上,编译器自动为我们添加的默认构造器的形式参数列表是空的,并且什么都不执行。这似乎有点可笑,有一个构造器但是什么都不做,岂不是浪费代码么?这是因为每个类都必须有一个构造器。当我们实例化类时,new运算符必须调用构造器。编译器要为类添加默认构造器纯粹是为了方便。在几乎所有我们可以找到的开发条件下,我们都会为所有类添加至少一个构造器。在编写自己的构造器之前,我们首先来快速了解一下默认构造器。

3.1默认的构造器仍然遵循构造器的规则:构造器的名称与类名相同,没有返回值。同时,默认的构造器不包含任何语句。
如果我们自己在类中添加了一到多个构造器,那么编译器就不会为类添加默认构造器。
3.2当一个对象使用关键字new实例化时,构造器就被调用了。一个类可以有多个构造器,这种情况下,要调用哪个构造器就取决于new运算符所用的实际参数。
如果一个类有一个构造器,那么就只有一种方法来初始化该类的一个对象。
3.3在构造器中使用this,为了避免重复代码,我们可以用所有的构造器调用一个特定的构造器,让这个特定的构造器完成重复代码的工作。在构造器中,可以用this关键字来调用同一个类中的其它构造器。

四、数组概述
数组是存储在一个连续的内存块中的元素集合。数组中的每个元素必须是相同的数据类型,并且通过索引进行区分。数组中的第一个元素的索引为0。
在Java中,创建数组有两个步骤:
1.声明一个对数组的引用;
2.使用new关键字初始化数组,并指定数组的大小

在Java中,数据要么是基础数据类型的,要么是一个引用类型。而数组不是八种基础数据类型之一,所以数组是引用类型。所以,一个数组需要一个引用来访问它,并且需要new关键字来初始化。
要声明一个数组引用,可以用中括号
语句:int [ ] sums或者int sums [ ];

五、访问数组
数组中的元素通过用对该数组的一个引用、一个用于描述我们要访问数组哪一个元素的整型索引值来访问。数组的第一个元素的索引为0,第二元素的索引为1,依此类推。

六、数组长度

Java语言的数组与其它语言的数组的不同之处在于:Java中的数组是对象。这样做的好处之一为:Java中的每个数组都有一个length属性来代表数组的大小。
使用length属性可以极大地减少数组访问越界的可能性。

七、引用数组
Java中有九种类型的数组:八种基础数据类型中每一种是一种数组类型、引用类型的数组类型。sums和temps数组就是基础数据类型数组的示例。我们可以声明任何引用类型的数组。

八、数组初始化
在Java中,我们可以用一条语句声明一个数组引用,实例化一个数组,并且填充数组元素。这个过程称为数组初始化,它对创建一个包含已知数据的小数组是很有用的。
数组初始化程序在创建数组时,不需要使用new关键字。数组中的元素使用大括号列出,元素和元素之间用逗号分隔开。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/W_angpeng/article/details/82225369
今日推荐