• Java(二)


    方法:

    Java语言中为什么要引入方法?方法本质是什么?

    方法本质就是一段代码,这个代码片段可以完成某个特定功能,并且可以被重复利用。

    例:

    public class MethodTest01{
    
       public static void main(String[] args){	
       	//需求:计算50和30的求和
       	MethodTest01.sum(10,20);
       	MethodTest01.sum(20,30);
       	
       }
       
       //定义一个方法,该方法完成两个int类型数据的求和。
       //Method
       public static void sum(int e,int f){
       	int c = e + f;
       	System.out.println(e + "+" + f + "=" + c);
       }
    }
    

    方法如何定义,语法:

    [修饰符列表] 返回值类型 方法名(形式参数列表)

      {
      方法体;//由java语句构成
      }

    1.返回值类型可以是java中任何一种数据类型。
    2.如果该方法执行结束之后没有任何返回值,那么返回值类型必须写void
    3.如果方法的返回值类型不是void,而是其他的数据类型,那么在方法体中必须保证有“return 值;”语句返回值。
    4.注意:如果return语句一旦执行,则标识该方法结束。所以return语句下面不能再编写其他的java语句。
    5.方法名只要是合法的标识符即可。
    6.方法的形式参数列表参数的个数可以是0个,也可以是1个,可以是多个,如果是多个的话,必须使用“,”隔开。
    7.方法的形式参数列表中起决定性作用的是参数的类型,而不是变量名。
    8.所有带有static关键字的方法调用的时候应该采用“类名.方法名(实际参数列表);”

    例:

    public class MethodTest02{
    
       public static void main(String[] args){
       	
       	//10,20这是实际参数列表(实参)
       	//即使这个方法执行结束之后有返回值,我可以采用放弃接收。
    //   	MethodTest02.sumInt(100,23);
       	System.out.println(MethodTest02.sumInt(100,23));
       
       	
       	//不过一般情况下,只要方法有返回值就应该接收。
       	int retValue = MethodTest02.sumInt(100,23);
       	System.out.println(retValue);
       	
       }
       
       
       public static int sumInt(int a,int b){ //int a,int b 叫做形式参数列表(形参)
    	   return a + b;
       }
       
    }
    

    练习题:

    /*
    【程序1】
     打印出100-999中所有的"水仙花数",所谓"水仙花数"是指一
     个三位数,其各位数字立方和等于该数本身。例如:
     153是一个"水仙花数",因为153=1的三次方+5的三次方
     +3的三次方。 
     1.程序分析:利用for循环控制100-999个数,每个数分解
     出个位,十位,百位。
    */
    
    public class ShuiXianHua {
    	public static void main(String[] args) {
    		for(int i = 100;i<1000;i++){
    	         if(isNarcissus(i)){
    		          System.out.println(i + " 是水仙花数!");
                 }
    		}
    	}
    	public static boolean isNarcissus(int num){
                    int baiWei = num/100; //百位数值
    		int shiWei =  num/10%10;  // 十位数值
    		int geWei = num%100%10;   // 个位数值
    
    		if(num == liFang(baiWei) + liFang(shiWei) + liFang(geWei) ){
    		    return true;
    		}else{
    		    return false; 
    		}
    	}
    
    	public static int liFang(int num){
    	    return num * num * num;
    	}
    }
    
    /*
    【程序1】  
     某电信公司的市内通话费计算标准如下:三分钟内0.2元,
     三分钟后每增加一分钟增加0.1元,不足一分钟的按一分
     钟计算。要求编写程序,给定一个通话时间(单位:秒)
     计算出应收费金额。
    */
    public class DianHuaFei{
    	public static void main(String args[]){
    	     int time = 5000;// 通话时间,单位是秒		 
             double money = jiSuanHuaFei(time);
    		 System.out.println("通话时间是:" + time + "秒,通话费用是:" + money + "元.");
    	}
    
    	/**
    	* 计算指定时间所需要的花费
    	* @param time 通话的时间
    	* @return 通话的费用
    	*/
    	public static double jiSuanHuaFei(int time){
             double money = 0.0;
    		 // 判断通话时间是否在3分钟之内
    		 // 3分钟之内,话费 是0.2元
    		 if(time <= 180){
    		     money = 0.2;
    		 }
    		 // 3分钟之外
    		 else{		     
                   // 判断通话时间是否是正分整秒
    			  // 非正分正秒,不足一分钟的按一分
    			  money = (time-180)/60 *0.1 +0.2;			  
    			  if(time % 60 != 0){
    				  money += 0.1;
    			  }			
    		 }
    		 return money;
    	}
    }
    
    /*
    程序2】
     某市的出租车计费标准为:3公里以内10元,3公里以后每
     加0.5公里加收1元;每等待2.5分钟加收1元;超过15公里
     的加收原价的50%为空驶费。
     要求编写程序,对于任意给定的里程数(单位:公里)和
     等待时间(单位:秒)计算出应付车费
    */
    public class CheFei {
    	public static void main(String[] args) {
    		
    		// 声明变量名称的规范:第一个单词的首字符小写,其余单词的首字符大写
    		// 等待时间,单位秒
    		int   waitTime = 200;
    		// 行驶里程,单位:公里
    		double liCheng = 16.6;
    		
            double money =  jiSuanCheFei(waitTime,liCheng); 
            System.out.println("行驶里程是:" +liCheng + "公里,等待时间是:" + waitTime + "秒,应付的车费是:" + money + "元." );
    	}
    
    
        /**
    	* 计算等待时间和行驶里程所需要的车费
    	* @param liCheng 行驶里程,单位是公里
    	* @param waitTime 等待时间 单位是秒	
    	* @return  应付的车费
    	*/                                                   
    	public static double jiSuanCheFei(int waitTime,double liCheng){
    		// 计算等待时间的费用
    		double timeMoney = jiSuanTimeMoney(waitTime);
    
    		//------------------------------------------
    		// 计算行驶里程的费用
    		// 判断里程是否在3公里之内
    		double liChengMoney = 0.0;
    		if(liCheng <= 3.0){
    			liChengMoney = 10.0;
    		}
    		// 3公里了之外
    		else{
                // 判断里程是否在15公里之内
    			liChengMoney = (int)((liCheng -3.0)/0.5) * 1 + 10.0;			
    			if(liCheng > 15.0){
    				liChengMoney *= 1.5;
    			}
    		}
    
    		// 总的车费是时间的费用 + 里程的费用
    		double money = timeMoney + liChengMoney;
    		return money;
    	}
    
        /**
    	* 计算等待时间所需要的车费
    	* @param waitTime 等待时间 单位是秒	
    	* @return  应付的车费
    	*/
    	public static double jiSuanTimeMoney(int waitTime){
            // 计算等待时间的费用
    		double timeMoney = (waitTime/150)*1;
    		return timeMoney;
    	}
    }
    

      

      

      

      

  • 相关阅读:
    Java中的多线程你只要看这一篇就够了
    模板CodeTemplate
    mybatis_mysql
    Kettle 使用Json输入
    图解ByteBuffer
    双队列缓存
    log4j.properties配置详解与实例
    Kettle 使用Json输入
    JSON响应端模拟测试
    使用Kettle导出excel
  • 原文地址:https://www.cnblogs.com/xiaowei89426/p/5718290.html
Copyright © 2020-2023  润新知