JAVA基础学习20171119-方法
来源:互联网 发布:最简单的java web项目 编辑:程序博客网 时间:2024/06/11 01:05
1.什么是方法
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
2.方法的声明
语法格式:
访问修饰符 返回类型 方法名(参数列表){
方法体
}
3.方法分类
无参无返回值方法
无参带返回值方法
带参无返回值方法
带参带返回值方法
4.无参无返回值方法
例:一行打印输出一串星号
代码:
package com.imooc.method;import java.util.Scanner;public class MethodDemo { //打印输出星号的方法 public void printStar(){ System.out.println("********************"); } public static void main(String[] args){ MethodDemo myMethodDemo=new MethodDemo(); myMethodDemo.printStar(); System.out.println("********************"); System.out.println("欢迎来到Java的世界"); System.out.println("********************"); myMethodDemo.printStar(); }}
5.无参数有返回值方法
例:求长方形的面积
代码:
package com.imooc.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()); }}
6.有参无返回值的方法
例:定义一个求两个float类型数据最大值得方法,在方法中将最大值打印输出
代码:
package com.imooc.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(); float m=7.5f,n=8.9f; maxDemo.max(m,n); maxDemo.max(7.8f,41.8f); }}
7.有参有返回值的方法
例:定义一个求n!的方法,然后求1!+2!+3!+4!+5!
代码:
package com.imooc.method;import java.util.Scanner;public class Factorial { //定义方法求n的阶乘和 public int fac(int n){ int sum2=0; for(int i=1;i<=n;i++){ int sum1=1; for(int j=1;j<=i;j++){ sum1=sum1*j; } sum2=sum2+sum1; } return sum2; } public static void main(String[] args){ //输入一个整数n System.out.println("请输入一个整数n:"); int n; Scanner sc=new Scanner(System.in); n=sc.nextInt(); //调用方法求n的阶乘和 Factorial factorial=new Factorial(); System.out.println(n+"的阶乘和为:"+factorial.fac(n)); }}
代码:
package com.imooc.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); //求1!+2!+3!+4!+5! int sum=0; for(int i=1;i<=5;i++){ sum=sum+facDemo.fac(i); } System.out.println("1!+2!+3!+4!+5!="+sum); }}
8.数组作为方法参数
例:定义方法,打印输出数组元素的值。
Public void printArray(int[] arr){}
代码:
package com.imooc.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); }}
例:查找数组元素的值
public boolean search(int n,int[] arr){}
代码:
package com.imooc.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}; System.out.println("请输入要查找的数据:"); Scanner sc=new Scanner(System.in); int n1=sc.nextInt(); ArraySearch as=new ArraySearch(); boolean flag=as.search(n1, arr1); if(flag){ System.out.println("找到了!"); }else{ System.out.println("没找到!"); } }}
9.方法重载
方法名相同,参数列表不同
代码:
package com.imooc.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(1.1,2.2)); System.out.println("数组元素的和:"+mathDemo.plus(arr)); }}
10.基本数据类型的传值
例:对两个变量的值进行交换并打印输出
代码:
package com.imooc.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=1,n=3; System.out.println("交换前:m="+m+",n="+n); swap(m, n); System.out.println("交换后:m="+m+",n="+n); } public static void main(String[] args){ int m=4,n=5; ExchangeDemo ed=new ExchangeDemo(); System.out.println("交换前:m="+m+",n="+n); ed.swap(m, n); System.out.println("交换后:m="+m+",n="+n); ed.swapTest(); }}
代码:
package com.imooc.method;public class ExchangeDemo1 { public void add(int n){ n++; System.out.println("方法中n="+n); } public static void main(String[] args){ int n=10; System.out.println("方法调用前n的值:"+n); ExchangeDemo1 ed=new ExchangeDemo1(); ed.add(n); System.out.println("方法调用后n的值:"+n); }}
11.数组的传值
代码:
package com.imooc.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+" "); } }}
12.可变参数列表
例:public void sum(int… n){}
代码:
package com.imooc.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,4); }}
代码:
package com.imooc.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); }}
13.可变参数列表作为方法参数的重载问题
代码:
package com.imooc.method;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(6,7)); System.out.println("和为:"+ad.plus(1,2)); }}
阅读全文
0 0
- JAVA基础学习20171119-方法
- Java基础之方法学习
- JAVA基础学习_方法
- Java基础学习6_方法
- 【Java基础】Java方法
- 开始学习Java RMI,远程方法调用-基础篇
- Java基础学习日记--抽象后继-->模板方法
- 黑马程序员------Java基础学习------方法和数组
- 开始学习Java RMI,远程方法调用-基础篇
- [java基础学习]05——方法和数组
- Java基础学习总结(1)——equals方法
- JavaSE入门学习8:Java基础语法之方法
- java基础学习总结之IO流和equal()方法
- Java基础学习第五天——方法与数组
- java基础学习总结——equals方法
- java基础学习总结——方法的重载(overload)
- JAVA面向对象基础 对象 类 方法学习笔记
- JAVA面向对象基础 对象 类 方法学习笔记
- Android中用Handler更新界面UI
- (9)Hadoop 2.6.1 集群部署——未配置HA
- C语言字符串函数大全
- 国内 90% 以上的 iOS 开发者,对 APNs 的认识都是错的
- Vue基础(事件处理)
- JAVA基础学习20171119-方法
- java中equals方法的用法以及==的用法
- TOJ 5307: C实验:素数判断函数
- 业界最小封装SOT23-6单芯片I2C转PWM
- 在安装ubuntu系统时候产生的一系列的问题及其回答
- centos6.5升级gcc到4.9
- 时间计算-----年月日
- 575. Distribute Candies
- win10下使用pip安装numpy