首页 > 技术文章 > Java——类的无参、带参方法

szj-ang 2017-08-04 13:56 原文


》类的无参方法

什么是类的方法  

  类是由一组具有相同属性和共同行为的实体抽象而来。对象执行的操作是通过编写类的方法实现的。显而易见,类的方法是一个功能模块,其作用是“做一件事情”。

如何定义类的方法

类的方法必须包括以下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();
        
        
    }

 

推荐阅读