》类的无参方法
什么是类的方法
类是由一组具有相同属性和共同行为的实体抽象而来。对象执行的操作是通过编写类的方法实现的。显而易见,类的方法是一个功能模块,其作用是“做一件事情”。
如何定义类的方法
类的方法必须包括以下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(); }