所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块
访问修饰符 返回类型 方法名(参数列表){
方法体
}
package com.method;
import java.util.Scanner;
public class MethodDemo {
// 打印输出星号的方法
public void printStar() {
System.out.println("******************");
}
public static void main(String[] args) {
//创建一个MethodDemo类的对象myMethodDemo
MethodDemo myMethodDemo=new MethodDemo();
//使用对象名.方法名()去调用
myMethodDemo.printStar();
System.out.println("******************");
System.out.println("欢迎来到Java的世界");
System.out.println("******************");
myMethodDemo.printStar();
}
}
package com.method;
public class Rectangle {
//求长方形面积的方法
public int area() {
int length=10;
int width=5;
int Getarea=length*width;
return Getarea;//返回语句
}
public static void main(String[] args) {
Rectangle rc=new Rectangle();
System.out.println("长方形的面积为"+rc.area());
}
}
package com.method;
public class DisCountDemo {
// 根据商品总价输出折后总价
public float money(float price) {
if (price < 100) {
return price;
} else if (price <= 199) {
return price * 0.95f;
} else {
return price * 0.85f;
}
}
public static void main(String[] args) {
DisCountDemo dcd = new DisCountDemo();
// 定义商品总价存放到变量中
float price = dcd.money(150);
System.out.println("折后商品总价为:" + price);
// 调用方法,输出折后商品总价
}
}
定义一个求两个float类型数据最大值的方法,在方法中将最大值打印输出
package com.method;
public class MaxDemo {
//定义一个求最大值的方法
public void max(float a,float b) {
float max;
if(a>b) {
max=a;
}else {
max=b;
}
System.out.println("两个数"+a+"和"+b+"的最大值为"+max);
}
public static void main(String[] args) {
MaxDemo maxDemo=new MaxDemo();
int a=3,b=5;
maxDemo.max(a, b);
float m=5.6f,n=2.3f;
maxDemo.max(m, n);
maxDemo.max(9.2f, 10.1f);
}
}
定义一个求 n! 的方法
package com.method;
public class FacDemo {
//方法不能嵌套定义
//求阶乘的方法
public int fac(int n) {
int s=1;
for(int i=1;i<=n;i++) {
s*=i;//s=s*i
}
return s;
}
public static void main(String[] args) {
FacDemo facDemo=new FacDemo();
int fac=facDemo.fac(3);
System.out.println("3!="+fac);
int sum=0;
//求1!+2!+3!+4!+5!
for(int i=1;i<=5;i++) {
fac=facDemo.fac(i);
sum=sum+fac;
}
System.out.println("1!+2!+3!+4!+5!="+sum);
}
}
定义方法,打印输出数组元素的值
package com.method;
public class ArrayMethod {
public void printArray(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr= {10,20,30,40,50};
ArrayMethod am=new ArrayMethod();
am.printArray(arr);
}
}
编写方法,求数组元素的平均值
package com.method;
public class AverageDemo {
// 求数组元素的平均值
public void arrAvg(float[] arr) {
float sum = 0;
for (float n : arr) {
sum = sum + n;
}
float avg = sum / arr.length;
System.out.println("数组的平均值为:" + avg);
}
public static void main(String[] args) {
// 定义对象
AverageDemo ad = new AverageDemo();
// 创建float类型的数组并初始化
float[] arr = { 78.5f, 98.5f, 65.5f, 32.5f, 75.5f };
// 调用方法求平均值并打印输出
ad.arrAvg(arr);
}
}
package com.method;
import java.util.Scanner;
public class ArraySearch {
// 查找数组元素值的方法
public boolean search(int n, int[] arr) {
boolean flag = false;// 默认是没找到
for (int i = 0; i < arr.length; i++) {
if (arr[i] == n) {
flag = true;// 找到了
break;
}
}
return flag;
}
public static void main(String[] args) {
int[] arr1 = { 10, 20, 30, 40, 50, 60 };
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的数据:");
int n1 = sc.nextInt();
ArraySearch as = new ArraySearch();
boolean flag = as.search(n1, arr1);
if (flag) {
System.out.println("找到了!");
} else {
System.out.println("没找到!");
}
}
}
方法名相同,参数列表不同
package com.method;
public class MathDemo {
// 求两个int类型数的和
public int plus(int m, int n) {
return m + n;
}
// 求两个double类型数的和
public double plus(double m, double n) {
return m + n;
}
// 求数组元素的累加和
public int plus(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum = sum + arr[i];
}
return sum;
}
public static void main(String[] args) {
int m = 5, n = 10;
int[] arr = { 1, 2, 3, 4, 5, 6 };
MathDemo mathDemo = new MathDemo();
System.out.println("int类型的和:" + mathDemo.plus(m, n));
System.out.println("double类型的和:" + mathDemo.plus(5.6, 7.8));
System.out.println("数组元素的和:" + mathDemo.plus(arr));
}
}
定义两个重载的方法,分别求圆和长方形的面积
package com.method;
public class AreaDemo {
// 求圆形面积
public double area(double radius) {
return Math.PI * radius * radius;
}
// 求长方形面积
public double area(double width, double height) {
return width * height;
}
public static void main(String[] args) {
//定义对象
AreaDemo areaDemo=new AreaDemo();
//定义一个double类型的变量存放半径,并初始化
System.out.println("圆的面积为:"+areaDemo.area(4.5));
//定义两个变量存放长和宽,并初始化
System.out.println("长方形面积为"+areaDemo.area(5.0,8.0));
//调用方法,求圆的面积并打印输出
//调用方法,求长方形面积并打印输出
}
}
package com.method;
public class ExchangeDemo {
//交换方法
public void swap(int a,int b){
int temp;
System.out.println("交换前:a="+a+",b="+b);
temp=a;a=b;b=temp;
System.out.println("交换后:a="+a+",b="+b);
}
public void swapTest(){
int m=4,n=5;
System.out.println("交换前:m="+m+",n="+n);
swap(m, n);
System.out.println("交换后:m="+m+",n="+n);
}
public static void main(String[] args) {
ExchangeDemo ed=new ExchangeDemo();
ed.swapTest();
}
}
package com.method;
public class ArrayDemo {
//定义一个用于修改某个数组元素值的方法
public void updateArray(int[] a){
a[3]=15;
System.out.println("数组a的元素为:");
for(int n:a){
System.out.print(n+" ");
}
System.out.println();
}
public static void main(String[] args) {
ArrayDemo ad=new ArrayDemo();
int[] a1={1,2,3,4,5};
System.out.println("方法调用前数组a1的元素为:");
for(int n:a1){
System.out.print(n+" ");
}
System.out.println();
ad.updateArray(a1);
System.out.println("方法调用后数组a1的元素为:");
for(int n:a1){
System.out.print(n+" ");
}
}
}
package com.method;
public class ArgsDemo {
//求和
public void sum(int... n){
int sum=0;
for(int i:n){
sum=sum+i;
}
System.out.println("sum="+sum);
}
public static void main(String[] args) {
ArgsDemo ad=new ArgsDemo();
ad.sum(1);
ad.sum(1,2);分别有一个两个三个参数
ad.sum(1,2,3);
}
}
package com.method;
public class ArgsDemo1 {
//查找
public void search(int n,int... a){
boolean flag=false;
for(int a1:a){
if(a1==n){
flag=true;break;
}
}
if(flag){
System.out.println("找到了!"+n);
}else{
System.out.println("没找到!"+n);
}
}
public static void main(String[] args) {
ArgsDemo1 ad1=new ArgsDemo1();
ad1.search(3,1,2,3,4,5);
int[] a={1,2,3,4,5};
ad1.search(3, a);
}
}
package com.method;
/** 文档注释
* 关于可变参数列表和重载的问题
* @author SH
*
*/
public class ArgsDemo3 {
//可变参数列表所在的方法是最后被访问的。
/*
public int plus(int a,int b){
System.out.println("不带可变参数的方法被调用!");
return a+b;
}*/
public int plus(int... a){
int sum=0;
for(int n:a){
sum=sum+n;
}
System.out.println("带可变参数的方法被调用!");
return sum;
}
public static void main(String[] args) {
ArgsDemo3 ad=new ArgsDemo3();
System.out.println("和为:"+ad.plus(1,2));
}
}