》类的无参方法
什么是类的方法
类是由一组具有相同属性和共同行为的实体抽象而来。对象执行的操作是通过编写类的方法实现的。显而易见,类的方法是一个功能模块,其作用是“做一件事情”。
如何定义类的方法
类的方法必须包括以下3个部分
》方法名称。
》方法返回值。
》方法的主体。
语法:
public 返回值类型 方法名(){
//方法的主体
}
在编写方法时要注意一下3点:
》方法体放在一对大括号中。方法体就是一段程序代码,完成一定工作。
》方法名主要在调用这个方法时使用。在Java中一般采用骆驼式命名法。
》方法执行后可能返回一个结果,该结果的类型称为返回值类型。使用 return 语句返回值。
语法 :
return 表达式; 作用:跳出方法,返回结果。
public class Student {
String name;
//在方法名括号里没有参数的称之为无参方法
public String initname(){
name="小红";
return name;
}
}
方法调用:
语法:
对象名.方法名();
Java中类是程序的基本单元。每个对象需要完成特定的应用程序功能。当需要某一对象执行一项特定操作时,通过调用方法来实现。另外,在类中,类的不同方法之间也可以进行相互调用
》测试类
public class MyTest {
public static void main(String[] args) {
Student stu = new Student(); //创建学生对象
String name =stu.initname(); //调用方法并接收方法的返回值
System.out.println(name); //显示类信息
}
}
》常见错误
原因分析:方法的返回值类型为void,方法中不能有return 语句。
原因分析:方法不能返回多个值。
原因分析:多个方法不能相互嵌套定义。例如,不能将getInfo()定义在showInfo()中。
原因分析:不能在方法外部直接编写程序逻辑代码。
》成员变量和局部变量
Java中以类来组织程序,类中可以定义变量和方法,在类的方法中。同样可以定义变量。
public class Student {
/**
* 成员变量:类的方法可以直接使用该类定义的成员变量。如果其它类的方法要访问它,
* 必须首先创建该类的对象,然后才能通过操作符"." 来引用
* */
String name;
//在方法名括号里没有参数的无参方法
public String initname(){
name="小红"; //直接引用成员变量
/**
* 局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用。
* */
String name1 = "小明"; //局部变量
return name1;
}
}
需要注意以下几点:
》作用域的不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问。成员变量的作用域在整个类的内部都是可见的,所有成员方法都可以使用,如果访问权限允许,还可以在类外部使用成员变量。
》初始值不同。对于成员变量,如果在类定义中没有给它赋初始值,Java会给它一个默认值,基本数据类型的值为0,引用类型的值为 null 。但Java不会给局部变量赋初始值,因此局部了变量必须要定义赋值后再使用。
》在同一个方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量。
》局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。
》带参方法
语法:
<访问修饰符> 返回值类型 <方法名>(<参数列表>){
//方法的主体
}
public class Student {
//带参方法
public void initname(String name){
System.out.println(name);
}
}
调用带参方法:
调用带参方法与调用无参方法的语法相同,但是在调用带参方法时必须传入实际的参数的值。
public static void main(String[] args) {
Student stu = new Student(); //创建学生对象
Scanner input =new Scanner(System.in);
System.out.println("请输入姓名:");
String name= input.next();
stu.initname(name); //转入参数
}
在定义方法和调用方法时,把参数分别称为形式参数和实际参数,简称形参和实参。形参是在定义方法是对参数的称呼,目的是定义方法需要传入的参数个数和类型。实参是在调用方法时传递给方法处理的实际的值。
调用方法时,需要注意一下两点。
》先实例化对象,再调用方法。
》实参的类型、数量、顺序都要与形参一一对应。
》传入多个参数
public class Student {
//带参方法
public void initname(String name,int age){
System.out.println(name);
}
}
调用方法:
public static void main(String[] args) {
Student stu = new Student(); //创建学生对象
Scanner input =new Scanner(System.in);
System.out.println("请输入姓名:");
String name= input.next();
System.out.println("请输入年龄:");
int age= input.nextInt();
stu.initname(name,age); //转入参数
}
注意:在多个参数中,形参和实参一定要一一对应。
》以对象作为参数
学生类
public class Student {
int id;
String name;
int age;
public void showInfo(){
System.out.println(id+"\t"+name+"\t"+age);
}
}
学生管理类
public class StudentBiz {
Student[] stus=new Student[5];
//添加方法
public void addStudent(Student stu){
for (int i = 0; i < stus.length; i++) {
if(stus[i]==null){
stus[i]=stu;
break;
}
}
}
//遍历学生信息
public void showStudent(){
System.out.println("本班学生列表:");
for (int i = 0; i < stus.length; i++) {
if(stus[i]!=null){
stus[i].showInfo();
}
}
}
}
调用方法
public static void main(String[] args) {
Student stu1 = new Student(); //创建学生对象
stu1.id=18;
stu1.name="小明";
stu1.age=20;
Student stu2 = new Student(); //创建学生对象
stu2.id=19;
stu2.name="小红";
stu2.age=19;
//创建学生管理对象
StudentBiz biz=new StudentBiz();
biz.addStudent(stu1);
biz.addStudent(stu2);
biz.showStudent();
}