Java 基础day05
方法
注意事项
1:什么是方法?函数
方法就是一个段代码的集合,
这段代码完成了某个具体的功能 业务场景()。
一个方法就是一个功能。
2:为什么使用方法?
避免main方法中的代码堆积,造成后期的拓展以及维护的成本增加。
3:如何使用方法?
a:照着main方法抄了一个方法,少了String[] args
b:在方法中通过方法名称调用需要执行的方法
方法()中的内容 参数,就相当于一个天线,用来接收调用者发送的数据信息。
声明一个方法 将方法计算出来的结果 让其他方法也可以使用
一个方法中声明了void 证明该方法无返回值。
不能写return返回语句。
如果一个方法存在返回结果,方法的什么处的void修改为返回数据的数据类型。
在方法体最后一行语句通过return返回具体的值。
代码
import java.util.Scanner;
public class Demo05{
public static void main(String[] args){
System.out.println("请输入计算的圆的半径>>>>>>");
//创建一个Scanner对象
Scanner input = new Scanner(System.in);
//通过Scanner对象中的nextInt方法获取用户输入的int值
int r = input.nextInt();
double area = getArea(r);
System.out.println("请输入计算的圆柱体的高>>>>>>");
//通过Scanner对象中的nextInt方法获取用户输入的int值
int width = input.nextInt();
//计算半径为r的圆的周长
double length = getZC(r);
//计算矩形的表面积
double jArea = getArea(length,width);
//计算圆柱体的表面积
double sumArea = getYZT(area,jArea);
System.out.println("以半径为"+r+"的,高为"+width+"的圆柱体的表面积是:"+sumArea);
}
public static double getYZT(double yArea,double jArea){
return yArea*2+jArea;
}
public static double getZC(int r){
//参数判定 代码的健壮性更好 防御性编程
if(r==0){
return 0;
}
方法重载
方法重载面试题
//计算周长
double pi = 3.14;
double zc = 2*pi*r;
//返回周长
return zc;
}
/**
计算矩形的面积
*/
public static double getArea(double length,int width){
double area = length*width;
//System.out.println(area);
return area;
}
/**
计算半径r的圆的面积
*/
public static double getArea(int r){
//声明一个变量存放pi的值
double pi = 3.1415;
//声明圆的半径
//int r = 4;
//计算面积
double area = pi*r*r;
System.out.println("半径是"+r+"的圆的面积是"+area);
return area;
}
}
tips:
1:如何声明?
照着main方法抄
2:这个方法完成什么功能
知道了方法中的逻辑如何编写
3:这个方法的执行需不需要帮忙?
参数列表
1:方法就是一个功能模块,完成某个功能。
不要重复造轮子。方法是可以复用的。
2:变量:首字母小写 其它每个单词的字母均大写
类: 首字母大写 其它每个单词的字母均大写
方法:首字母小写 其它每个单词的字母均大写//@+单词 注解
@param r 需要计算的圆的半径
@return double 返回计算的圆的周长
方法重载
在一个类当中编写方法的时候,多个方法其实所做的事情是一样的
为了契合方法起名要见名知意,方法名称可以一样。
在一个类中定义同名方法是可以的,称之为重载。
2同
同类
同名
3不同
参数列表长度不同
参数列表类型不同
参数列表顺序不同
tips
- 最近最优
char
byte short int long float double
如果没有基本数据类型 接下来找基本数据类型的包装类
才会找可变参数
面试题
public class Demo07{
public static void main(String[] args){
char ch = 'A';
info(ch);
}
/*public static void info(char ch){
System.out.println("info char");
}*/
public static void info(int ch){
System.out.println("info int");
}
/*public static void info(long ch){
System.out.println("info long");
}*/
public static void info(double ch){
System.out.println("info double");
}
}
/**
重载方法的面试题
以下程序中输出什么内容
如果程序中的重载方法,都没有完全符合的。
但是存在多个能够调用的方法时,程序会报错
*/
public class Demo08{
public static void main(String[] args){
info(12,12.1f);
}
public static void info(char ch,double d){
System.out.println("info char ch,double d");
}
public static void info(int ch,double d){
System.out.println("int ch,double d");
}
public static void info(long ch,float d){
System.out.println("long ch,float d");
}
}
/**
重载方法的面试题
以下程序中输出什么内容
*/
public class Demo09{
public static void main(String[] args){
info(12);
}
/*public static void info(long l){
System.out.println("info long l");
}*/
/*public static void info(Integer in){
System.out.println("Integer in");
}*/
/*
jdk1.5之后,支持可变参数
*/
public static void info(int ... ins){
System.out.println("Integer ... ins");
}
}