Java数组、方法、类与对象
Java数组——
数组中的元素是通过下标来访问的
数据类型[ ] 数组名; //或者: 数据类型 数组名[ ];
数组名 = new 数据类型 [ 数组长度 ];
Java中可以将一个数组赋值给另一个数组:
int [] a1 = {1,2,3}; int [] a2; a2 = a1;
Java方法——
访问修饰符 返回值类型 方法名(参数列表){
方法体
}
1、访问修饰符:代表方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用我们会在后面章节中详细讲解。
2、返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void (代表无类型);如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。
3、方法名:是方法的名字,必须使用合法的标识符。
4、参数列表:是传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
5、方法体:方法体包含具体的语句,定义该方法的功能。
根据方法是否带参、是否带返回值,可将方法分为四类:
无参无返回值方法
无参带返回值方法
带参无返回值方法
带参带返回值方法
calcSum方法用来计算两门课程的成绩总分:
public class PrintScore { public static void main(String[] args) { // 创建对象,对象名为a PrintScore a = new PrintScore(); int rSum; //设置一个int型变量,用来接收方法的返回值 // 调用方法,传入两门课程的成绩 rSum = a.calcSum(78,99); System.out.println("总分:"+ rSum); } /* * 功能:计算两门课程考试成绩的总分并输出总分 * 定义一个包含两个参数的方法,用来传入两门课程的成绩 */ public int calcSum(int a, int b){ int sum= a + b; return sum; } } /* 方法名为calcSum,它的修饰符是public,它有两个参数int a和int b, * 在方法调用的时候必须传入这两个参数。它有一个int 型的返回值,所以在方法里,有一条语句return sum; * 用来返回sum的值,其中sum类型也为int 型。而在方法调用的时候,我们用一个int 型变量rSum来接收这个返回值。方法calcSum实现了将两门课程的总成绩算出并返回。 */
注意:
调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
调用方法时,实参不需要指定数据类型
当方法参数有多个时,多个参数间以逗号分隔
——方法重载:
一个类中,有一系列的方法具有方法名相同,但参数列表不同,方法的参数列表不同(参数的个数和参数类型的不同)
在进行方法重载的时候需要遵循以下的规则:
1.在使用方法重载的时候,必须通过方法中不同的参数列表来实现方法的重载。如:方法的参数个数不同或者方法的参数类型不同。
2.不能通过访问权限,返回值类型和抛出的异常来实现重载
3.重载的方法中允许抛出不同的异常
4.可以有不同的返回值类型,只要方法的参数列表不同即可
5.可以有不同的访问修饰符
——参数与返回值:
注意:
如果方法的返回类型为 void ,则方法中不能使用 return 返回值。
方法的返回值最多只能有一个,不能返回多个值。
方法返回值的类型必须兼容,也就是说如果返回值类型为 int ,则不能返回 String 型值
调用带返回值的方法时,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理
Java类与对象——
类
public class 类名{ //定义属性部分(成员变量) 属性1的类型 属性1; 属性2的类型 属性2; ... //定义方法部分 方法1; 方法2; ... }
定义一个类,主要有三个步骤:
1、定义类名,用于区分不同的类。如下代码中 public class 后面跟的就是类名。class是我们声明类的关键字,类名后面跟上大括号,大括号里面就是我们类的一些信息。public我们会在后面详细讲解,大家先记着就行了。
2、编写类的属性。对象有什么,我们通过属性来表示。属性的定义我们是写在类名后面的大括号里,在定义属性时,要明确属性的类型。在一个类当中可以写一个或多个属性。当然也可以不定义属性。
3、编写类的方法。方法也是写在大括号里面。我们可以定义一个方法或多个方法,当然也可以不定义方法。
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:也叫静态变量,类变量也声明在类中,方法体之外,但必须声明为static类型。
构造方法
- 每个类都有构造方法。
- 如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
- 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
通过new关键字将类实例化成对象,而new后面跟的就是构造方法,
于是可以知道new + 构造方法可以创建一个新的对象:
package com.shiyanlou; public class People { //属性(成员变量)有什么 double height; //身高 int age; //年龄 int sex; //性别,0为男性,非0为女性 //构造函数,初始化了所有属性 public People(double h, int a, int s){ height = h; age = a; sex = s; } } //创建对象,调用我们自己定义的有参构造方法 People XiaoMing = new People(168, 21, 1);
1、构造方法的名称与类名相同,且没有返回值。
2、如果我们在定义类的时候没有写构造方法,系统会默认给我们生成一个无参构造方法,不过这个构造方法什么也不会做。
3、当有指定的构造方法时,系统都不会再为我们添加无参构造方法了。
4、构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。
对象
定义类的时候是不会为类开辟内存空间的,但是一旦创建了对象,系统就会在内存中为对象开辟一块空间,用来存放对象的属性值和方法。
public class NewObject { public static void main(String[] args) { People LiLei = new People(); //创建一个People对象LiLei LiLei.height =170; LiLei.age = 20; LiLei.sex = 1; LiLei.printBaseMes(); } }