Java学习笔记:方法、数组、类的学习

方法的定义
方法(method)是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。 注意:方法必须先创建才可以使用,该过程称为方法定义。方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
方法的格式
public static void 方法名() {
方法体
}
范例: public static void isEvenNumber() {
方法体
}
注意事项
(1)方法名的命名规则和变量一样,使用小驼峰。
(2)方法体:也就是大括号当中可以包含任意条语句。
(3)方法定义的先后顺序无所谓。
(4)方法的定义不能产生嵌套包含关系。
(5)方法定义好之后,不会执行的,要想执行,一定要进行方法的调用。
方法调用
格式: 方法名();
范例: isEvenNumber();
注意:方法必须先定义后调用,否则程序将报错。

方法定义的完整格式

修饰符 返回值类型 方法名称(参数类型 参数名称,…){
方法体
return 返回值;
}
(参数:就是进入方法的数据)
(返回值:就是从方法出来的数据)

修饰符:现阶段的固定写法:public static
返回值类型:就是方法最终产生的数据结果是什么类型(方法操作完毕之后返回的数据的数据类型。如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return)
方法名称:方法的名字(调用方法时使用的标识)规则和变量一样:小驼峰
参数类型:进入方法的数据是什么类型
参数名称:进入方法的数据对应的变量名称
(注意:参数如果有多个,使用逗号进行分隔)
方法体:方法需要做的事情,若干行代码,完成功能的代码块
return:两个作用,第一个是停止当前方法,第二个是将后面的返回值还给调用处。
返回值:也就是方法执行后最终产生的数据结果。return后面的返回值,必须和方法名称前面的返回值类型,保持对应。
注意事项:定义方法时,第一个是要明确方法操作完毕后是否有数据返回,如果没有,写void,如果有,写对应的数据类型。第二个是要明确参数,就是要明确参数的类型和数量。

方法的三种调用格式
(1)单独调用:方法名称(参数);
(2)打印调用:System.out.println(方法名称(参数));
(3)赋值调用:数据类型 变量名称=方法名称(参数);
注意事项:对于有返回值的方法,可以使用以上三种调用。但是对于无返回值的方法,只能使用单独调用。(调用方法时,void类型的方法,直接调用就可以。非void类型的方法,推荐用变量接收调用)

使用方法的时候的注意事项
(1)方法应定义在类中,但是不能在方法中再定义方法,不能嵌套。
(2)方法定义的前后顺序无所谓。
(3)方法定义后必须要调用才会执行。
(4)如果方法有返回值,那么必须写上“return 返回值”。而且返回值数据必须和方法的返回值类型相对应。
(5)对于一个void没有返回值的方法,只能写“return”,要不就省略return。
(6)一个方法中可以有多个return语句,但是必须保证同时只有一个会被执行,两个return不能连写。

以上说明的具体例子阐述
形参:方法定义中的参数 等同于变量定义格式,例如:int number
实参:方法调用中的参数 等同于使用变量或常量,例如: 10 例如: number
方法的参数传递: 对于基本数据类型的参数,形式参数的改变,不影响实际参数的值。 对于引用类型的参数,形式参数的改变,影响实际参数的值。
带参数方法定义
格式: public static void 方法名(参数){…}
格式(单个参数):public static void 方法名 (数据类型 变量名){…}
示例(单个参数):public static void isEvenNumber (int number){…}
格式(多个参):
public static void 方法名(数据类型 变量名1,数据类型 变量名2,…){…}
示例(多个参数):
public static void getMax(int number1,int number2) {…}
注意:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错。方法定义时,多个参数之间使用逗号(,)分隔。
带参数方法调用
格式: 方法名(参数);
格式(单个参数): 方法名(变量名/常量值)
范例(单个参数):isEvenNumber(5);
格式(多个参数): 方法名(变量名1/常量值1,变量名2/常量名2)
范例(多个参数):getMax(5,6);
注意:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错。

带返回值方法定义
格式: public static 数据类型 方法名(参数){
return 数据;
}
范例1:public static boolean isEvenNumber(int number) {
return true;
}
范例2:public static int getMax(int a , int b){
return 100;
}
注意:方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错。
带返回值方法调用:
格式1: 方法名(参数) (这个一般不用,一般用第二个)
范例1:isEvenNumber(10);
格式2:数据类型 变量名=方法名(参数); (一般用这个格式)
范例2:boolean flag=isEvenNumber(10);
注意事项
(1)当一个对象作为参数,传递到方法当中时,实际上传递进去的是对象的地址值。
(2)当使用一个对象类型作为方法的返回值时,返回值其实就是对象的地址值。

方法重载(OverLoad)概述:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载:
1、多个方法在同一个类中
2、多个方法具有相同的方法名
3、多个方法的参数不相同,类型不同或数量不同
方法重载的特点:重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。重载针对同一个类中方法的名称与参数进行识别,与返回值无关,也就是说不能通过返回值来判定两个方法是否相互构成重载。
方法重载和以下几个因素相关:
(1)参数个数不同
(2)参数类型不同
(3)参数的多类型顺序不同
方法重载和以下几个因素无关:
(1)与参数的名称无关
(2)与方法的返回值类型无关

数组:数组是一种用于存储多个相同类型数据的存储模型,它是一种容器。
数组的特点
(1)数组是一种引用数据类型
(2)数组当中的多个数据,类型必须统一
(3)数组的长度在程序运行期间不可改变
数组的定义格式
第一种:数据类型[ ] 变量名 范例: int[ ] arr (通常使用这一种)
第二种:数据类型 变量名[ ] 范例: int arr[ ]
数组初始化概述:Java中的数组必须先初始化,然后才能使用,所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
数组初始化方式:
第一种:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[ ] 变量名(数组名称)=new 数据类型[数组长度]
范例: int[ ] arr=new int[3] 解释范例: int:说明数组中的元素类型是int类型 [ ]:说明这是一个数组 arr:这是数组的名称 new:为数组申请内存空间 int :说明数组中的元素类型是int类型 [ ]说明这是一个数组 3:数组长度,其实就是数组中的元素个数
第二种:静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:数据类型[ ] 变量名(数组名称)=new 数据类型[ ]{数据1,数据2,…};
范例: int[ ] arr=new int[ ]{1,2,3};
简化格式:数据类型[ ] 变量名={数据1,数据2,…};
范例: int[ ] arr={1,2,3};
注意事项
(1)静态初始化和动态初始化都可以拆分为两个步骤。但是静态初始化一旦使用简化格式,就不能拆分为两个步骤了。
(2)直接打印数组名称,得到的是数组对应的内存地址哈希值。
(3)静态初始化也有默认值的过程,只不过系统自动马上将默认值换成了大括号当中的具体数值。
(4)使用动态初始化的时候,其中的元素将会自动拥有一个默认值,规则是:
如果是整数类型,那么默认值是0;
如果是浮点类型,那么默认值是0.0;
如果是字符类型,那么默认值是‘\u0000’;
如果是布尔类型,那么默认值是false;
如果是引用类型,那么默认值是null。
数组操作的常见小问题
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题。(数组的索引编号从零开始,一直到“数组的长度-1”为止)
空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常。(所有的引用类型变量,都可以赋值为一个null值,但是代表其中什么都没有。数组必须进行new初始化才能使用其中的元素,如果只是赋值了一个null,没有进行new创建,那么将会发生空指针异常)
null:空值,引用数据类型的默认值,表示不指向任何有效对象。
如何获取数组的长度
格式:数组名称.length
以上的格式将会得到一个int类型的数字,代表数组的长度,数组一旦创建,程序运行期间,长度不可改变。
数组作为方法的参数
数组可以作为方法的参数。当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。
数组作为方法返回值
一个方法可以有0、1、多个参数,但是只能有0或者1个返回值,不能有多个返回值,如果想要一个方法中产生多个结果数据进行返回,就要使用一个数组作为返回值类型。

任何数据类型都能作为方法的参数类型,或者返回值类型。
数组作为方法的参数,传递进去的是数组的地址值;
数组作为方法的返回值,返回的其实也是数组的地址值。

:类是现实生活中一类具有共同属性和行为的事物的抽象。
类的特点:类是对象的数据类型,类是具有相同属性和行为的一组对象的集合
属性:就是该事物的状态信息。
行为:就是该事物能够做什么。
对象:客观存在的事物都是对象。
对象的属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。
对象的行为:对象能够执行的操作。
类和对象的关系:类是对现实生活中一类具有共同属性和行为的事物的抽象,而对象是能够看得到摸的着的真实存在的实体。类是对象的抽象,对象是类的实体。

类的定义:类是Java程序的基本组成单位。它是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。
类的组成:属性和行为。属性:在类中通过成员变量来体现(类中方法外的变量)。行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键局就可以)。
类的定义步骤
(1)定义类 (2)编写类的成员变量 (3)编写类的成员方法
格式:
public calss 类名{
//成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;

//成员方法
方法1;
方法2;

}
注意事项
(1)成员变量是直接定义在类当中的,在方法外边。
(2)成员方法不要写static关键字。

通常情况下,一个类并不能直接使用,需要根据类创建的对象,才能使用。
步骤:(1)导包:也就是指出需要使用的类,在什么位置。
import 包名称.类名称
(对于和当前类属于同一个包的情况,可以省略导包语句不写)
(2)创建对象:
格式:
类名称 对象名=new 类名称();
范例: Phone p=new Phone();
(3)使用对象:
使用成员变量:
格式:对象名.成员变量名 范例:p.brand
使用成员方法:
格式:对象名.方法名() 范例:p.call();
(方法名后的括号内要是有参数也得写参数)
注意事项
如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。

猜你喜欢

转载自blog.csdn.net/qq_36294338/article/details/110763377