zoukankan      html  css  js  c++  java
  • 类的无参、有参方法

    类的方法     有什么作用???

    我们知道  类是由具有相同属性和共同行为的实体抽象而来的。  对象 执行的操作是通过编写类的方法实现的。类的方法是一个功能模块;有了方法才能实现操作否则就像一个布娃娃不会说也不会动。

     

    方法语法:  public 返回值类型    方法名(){

                      //方法的主体

               }

    public    void    play(){     //无返回值类型

             System.out.print("狗狗在玩球");

    }

    方法执行后可能会返回一个结果,该结果的类型称为返回值类型。使用return语句返回值。

    return  表达式;

    return 语句是跳出语句的一种他做了两件事:

       * 跳出方法  所以一般放在语句的最后

       * 给出结果

    public   String    eat(){       //有返回值类型

           String  food="hamburger";

           return   food;   //return  "hamburger";

    }

         就这样用 :)

    方法调用:语法     对象名.方法名();

    package bank.com;
    
    public class Lion {
       public  String corlor="yellow";
       public  void run(){
           System.out.println("奔跑的狮子");
       }
       public  String  eat(){
           return "喜欢吃 hamburger";
       }
       public String getCorlor() {
        return corlor;
       }
       public String show(){
           return "这是个"+getCorlor()+"狮子";
       }
       public void setCorlor(String corlor) {
        this.corlor = corlor;
      }
    }

    测试类:

    package bank.com;
    
    public class LionTest {
        public static void main(String[] args) {
             Lion on =new Lion();
              System.out.println(on.show());
             on.run();
             System.out.println("发现一个"+on.eat()+"狮子");
        }
        
         
    }

    定义带参方法

    <访问修饰符>  返回值类型 <方法名>(<参数列表>) {

             //方法的主体

             }

    访问修饰符指该方法允许被访问的权限范围,只能是 public  protected或private.

    语法    数据类型  参数1 ,数据类型 参数2,数据类型 参数3

     调用带参方法:

    调运带参方法和调运无参方法相同 

    语法 :对象名.方法名(参数1,参数2,参数3)

    实参的类型,顺序都和形参的一一对应。

    下面看一个例子:

    package bank.com;
    public class Add {    
        String []names=new String[30];//学生姓名数组
        public void  AddName(String name ){//有参方法
            //增加学生姓名
        }
        public void showname(){//无参方法
            //显示全部学生姓名
            
            }    
        }

    带多个参数的方法:查找姓名的方法

    package bank.com;
    
    public class SreachName {
        String names[]=new String [30];
        public boolean seachName(int start,int end ,String name){
            boolean find=false;
            for (int i=start-1;i<end;i++) {
                if(names[i].equals(name)){
                    find =true;
                    break;
                }
            }
            return find;
        }
    }
    package bank.com;
    import java.util.Scanner;
    public class SeachTest {
        public static void main(String[] args) {
    		Scanner input =new Scanner(System.in);
    		SreachName as=new SreachName();
    		System.out.println("请输入开始查找的位置:");
    		int s=input.nextInt();
    		System.out.println("请输入结束查找的位置:");
    		int e=input.nextInt();
    		System.out.println("请输入查找的姓名:");
    		String name=input.next();
    		System.out.println("**********查找结果*******");
    		if(as.seachName(s, e, name)){
    			System.out.println("找到了");
    		}
    		else{
    			System.out.println("没找到");
    		}
    	}
    }
    

      

    数组作为参数的方法

    package bank.com;
    
    public class StudentBiz {
        /**
         * 求平均分
         * 参赛成绩数组
         */
        public double CalAvg(int[] scores){
            int sum=0;
            double avg=0.0;
            for(int i=0;i<scores.length;i++){
                sum=sum+scores[i];
            }
            avg=(double)sum/scores.length;
            return avg;
        }
        /**
         * 最高分
         */
        public int CalMax(int[]scores){
            int max=scores[0];
            for(int i=0;i<scores.length;i++){
                if(scores[i]>max){
                    max=scores[i];
                  }
            }
            
            return max;
        }
    }

    测试类:

    package bank.com;
    import java.util.Scanner;
    public class Testo1 {
        public static void main(String[] args) {
            StudentBiz  st=new StudentBiz();
            int []scores=new int[5];//保存比赛成绩
            Scanner input=new Scanner(System.in);
            System.out.println("请输入参赛者的成绩:");
            for (int i = 0; i < scores.length; i++) {
                scores[i]=input.nextInt();
            }
            //输出平均分
            double avgScore=st.CalAvg(scores);
            System.out.println("平均成绩:"+avgScore);
            //输出最高分
            int  maxScore=st.CalMax(scores);
            System.out.println("最高值:"+maxScore);
        }
    }

    对象作为参数的方法

    public class Student {
          public int id;
          public String name;
          public int age;
          public int Score;
          public void show(){
              System.out.println(id+"	"+age+"	"+name+"	"+Score);
          }
    }
    public class StendentBiz {
        Student[] students=new Student[30];
        /**
         * 增加学生
         */
        public void addStudents(Student stu){
            for(int i=0;i<students.length;i++){
                if(students[i]==null){
                 students[i]=stu;
                 break;
                 }
            }
            
        }
        public void show(){
            System.out.println("本班学生列表:");
            for(int i=0;i<students.length;i++){
                if(students[i]!=null){
                    students[i].show();
                }
            }
            System.out.println();
        }
    }
    public class Test {
        public static void main(String[] args) {
            //实例化学生对象并初始化
            Student Student1=new Student();
            Student1.id=10;
            Student1.name="张三";
            Student1.age=18;
            Student1.Score=34;
            Student Student2=new Student();
            Student2.id=10;
            Student2.name="林三";
            Student2.age=38;
            Student2.Score=64;
            //新增学生对象
            StudentsBiz  st=new StudentsBiz();
            st.addStudents(Student1);
            st.addStudents(Student2);
            st.show();//显示学生信息
        }
    }
  • 相关阅读:
    抽象类
    继承
    面向对象的静态属性,类方法,静态方法
    查找linux系统下的端口被占用进程的两种方法 【转】
    awk学习
    【转】借助LVS+Keepalived实现负载均衡
    ORA-28001: the password has expired解决方法
    ORACLE的还原表空间UNDO写满磁盘空间,解决该问题的具体步骤
    Oracle控制文件多路复用以及Oracle备份重建控制文件
    RedHat6.1通过配置yum server安装软件包
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/6744488.html
Copyright © 2011-2022 走看看