/*
方法 : *****
解决事情的办法
作用 : 实现功能的办法
注意:
方法定义在类中方法外,方法本身不能嵌套
方法不调用不执行
优点 :
提高了代码的复用性
提高了程序的安全性
语法 :
么有返回值类型的方法
修饰符 void 方法名(参数列表){
实现功能的代码段;
[return;]
}
有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
实现功能的代码段;
return 返回值;
}
修饰符 : 访问权限修饰符
目前为 : public static
方法值 : 方法执行完毕之后是否需需要得到一个结果(值)
结果值的数据类型 : 就是有返回值类型方法的返回值类型
void : 没有返回值类型的
方法名 : 标识符->命名规则|规范
调用方法需要跟随方法名调用
参数列表 : 功能定义的时候是否存在未知的数据,有可能会改变的数据,如果存在定义在参数列表中
可以定义参数,可以不定义参数
参数 :数据类型 参数名,数据类型 参数名..
相当于局部变量的声明--> 作用域只属于当前的方法
数据类型 : 可以为基本数据类型|引用数据类型
{} : 方法体
具体实现功能的代码段
return :
1. 提前结束方法
2. 带出返回值 -> return 返回值;
方法的调用 :
执行方法中的代码
基础调用 : 方法名(参数列表);
赋值调用 : 数据类型 变量名 = 方法名(参数列表);
输出调用 : System.out.println(方法名(参数列表));
赋值调用与输出调用关注返回值,接收使用了返回值,基础调用调用只是执行方法中的代码没有接收返回值
*/
public static void main(String[] args) {
//有返回值方法调用
//基础调用
getPI();
//赋值调用
double pi = getPI();
System.out.println(pi);
//输出调用
System.out.println(getPI());
System.out.println(getSum(3,5));
System.out.println(getSum(7,5));
//没有返回值方法调用
//基础调用
print();
print();
print();
print();
}
//需求 : 返回pi的值
//参数 : 没有参数
//返回值 : 返回pi的值 double
//方法名 : getPI
public static double getPI(){
System.out.println("没有参数有返回值类型的方法");
return 3.1415926;
}
//需求 : 计算两个整数的和
//参数 : int x,int y
//返回值 : int
//方法名 : getSum
public static int getSum(int x,int y){
System.out.println("有参数有返回值类型的方法");
return x+y;
}
//需求 : 输出99乘法表
//参数 : 没有
//返回值 : 不需要
//方法名 : print
public static void print(){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
-
练习
public class Class034_Practice {
public static void main(String[] args) {
System.out.println(getSum(1.1,2.2));
System.out.println(getMax(1,2));
System.out.println(equals('a','a'));
print(5);
print(7);
System.out.println(getSum2(11,10));
}
/*
1.求和方案:求两个小数的和
2.参数 : double x,double y
3.返回值 : double --> 必须存在return 返回值;
4.方法名 : getSum
*/
public static double getSum(double x,double y){
//实现功能的代码段
//返回结果
return x+y;
}
//获取两个数中的较大值
//返回值 : 最大的值 int
//参数 : int a,int b
//方法名 : getMax
public static int getMax(int a,int b){
return a>b?a:b;
}
//比较两个数据是否相同
//参数 : char ch1,char ch2
//返回值 : boolean|String
//方法名 : equals
/*
public static boolean equals(char ch1,char ch2){
return ch1==ch2;
}
public static boolean equals(char ch1,char ch2){
if(ch1==ch2){
return true;
}
return false;
}
*/
public static String equals(char ch1,char ch2){
String msg;
if(ch1==ch2){
msg = "相等";
}else{
msg = "不想等";
}
return msg;
}
//输出m行乘法表
//参数 : int m
//返回值 : 不需要 void
public static void print(int m){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
//求一个范围内所有整数的和
//参数 : int min,int max
//返回值 : int
public static int getSum2(int min,int max){
//增强程序健壮性
if(min>max){
System.out.println("最小值大于最大值!!!!");
return 0;
}
int sum = 0;
for(int i=min;i<=max;i++){
sum+=i;
}
return sum;
}
}
-
返回值类型转换
/*
return :
有返回值类型的方法中 : 必须存在return,同时需要带出返回值
1)提前结束方法 2)带出返回值返回给方法的调用出
没有返回值类型的方法中 : 可以存在return,但是不能带出返回值
1)提前结束方法
问 : break,continue,return之间的区别
1)作用 : break结束终止 continue跳过本次之间进入下一次 return终止返回
2)应用场景 : break->switch|循环 continue->循环 return ->方法
兼容类型 :
1.参数兼容类型 :
形参类型 >= 实参类型
2.返回值兼容类型
接收返回值的变量类型>=方法的返回值类型>= return后面结果的类型
*/
public class Class036_Return{
public static void main(String[] args) {
byte b = 1;
byte i = test(b);
}
public static int test(int i){
return 'a';
}
}
-
方法的重载
/*
方法的重载 :
实现重载的3个条件 :
1.一个类中的多个方法
2.方法名相同
3.参数列表不同 | 方法签名不同
参数个数不同
参数类型不同
不同类型的参数顺序不同
方法签名 : 方法的唯一标识
方法名+参数列表 = 方法签名
重载方法的调用 :
根据实参区分
分析 :
1.方法的重载与参数名无关
2.方法的重载与方法的修饰符无关
3.方法的重载与方法的返回值无关]
总结 : 方法的重载只与方法名与参数列表有关
方法就是封装的体现
方法的重载就是多态的一种体现
*/
public class Class037_OverLoad{
public static void main(String[] args) {
getSum(3.0,5.0);
}
//求2个数的和 :
//返回值
//2个参数
//getSum
public static void getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
}
private boolean getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
return false;
}
public static void getSum(double i,double j){
System.out.println("两个double类型的和"+(i+j));
}
public static void getSum(int i,double j){
System.out.println("1个int1个double类型的和"+(i+j));
}
public static void getSum(double i,int j){
System.out.println("1个double个int类型的和"+(i+j));
}
}
/*
方法的重载 :
实现重载的3个条件 :
1.一个类中的多个方法
2.方法名相同
3.参数列表不同 | 方法签名不同
参数个数不同
参数类型不同
不同类型的参数顺序不同
方法签名 : 方法的唯一标识
方法名+参数列表 = 方法签名
重载方法的调用 :
根据实参区分
分析 :
1.方法的重载与参数名无关
2.方法的重载与方法的修饰符无关
3.方法的重载与方法的返回值无关]
总结 : 方法的重载只与方法名与参数列表有关
方法就是封装的体现
方法的重载就是多态的一种体现
*/
public class Class037_OverLoad{
public static void main(String[] args) {
getSum(3.0,5.0);
}
//求2个数的和 :
//返回值
//2个参数
//getSum
public static void getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
}
private boolean getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
return false;
}
public static void getSum(double i,double j){
System.out.println("两个double类型的和"+(i+j));
}
public static void getSum(int i,double j){
System.out.println("1个int1个double类型的和"+(i+j));
}
public static void getSum(double i,int j){
System.out.println("1个double个int类型的和"+(i+j));
}
}