Python 官方文档:入门教程 => 点击学习
目录什么是方法?方法的定义2021.6.2 方法的重载(重要笔试可能遇到)命令行传参2021.6.3可变参数(也叫不定项参数)递归(重要,不推荐使用)2021.6.5什么是数组数组声
package com.lxw.method;
public class Demo01 {
public static void main(String[] args) {
// int add = add(1, 5);
// System.out.println(add);
box();
}
public static int add(int a, int b) { //static让这个方法成为类方法,不然无法直接在主方法调用,
// 定义一个方法名字加类型如果是void就没有返回值,如果有就有返回值
return a + b;
}
public static void box() {
for (int i = 1; i <= 5; i++) { //外层循环5次,代表五行
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
int larger=max(30,40);
System.out.println("Hell0,kuangshen!");
课后拓展了解:值传递(Java)和引用传递
练习:
package com.lxw.method;
public class Demo01 {
//main方法
public static void main(String[] args) {
//实际参数:实际调用传递给他的参数
int add = add(1, 5);
System.out.println(add);
}
//加法
//形式参数,用来定义作用的
//public是公共的,所有人都可以使用它
public static int add(int a, int b) { //如果要直接使用这个方法,static让这个方法成为类方法,不然无法直接在主方法调用,
// 定义一个方法名字加类型如果是void就没有返回值,如果有就有返回值
return a + b; //如果方法存在返回值的话,一定要用return返回如果是void就不用返回了
}
}
练习:
package com.lxw.method;
public class Demo02 {
public static void main(String[] args) {
int max = max(50, 20);
System.out.println(max);
}
//方法可以无限制重名,但是确保数据类型不同
public static int max(int num1,int num2){
int result=0;
if (num1>num2){
result=num1;
System.out.println("num1>num2");
}else if (num1==num2){
System.out.println("num1==num2");
return 0; //也可以用来终止方法
}else {
result=num2;
System.out.println("num1<num2");
}
return result;
}
// public static double max(double num1,double num2){
//// int result=0;
////
////
//// if (num1>num2){
//// result=num1;
//// System.out.println("num1>num2");
//// }else if (num1==num2){
//// System.out.println("num1==num2");
//// return 0; //也可以用来终止方法
//// }else {
//// result=num2;
//// System.out.println("num1<num2");
//// }
//// return result;
// }
public static int max(int num1,int num2,int num3){
int result=0;
if (num1>num2){
result=num1;
System.out.println("num1>num2");
}else if (num1==num2){
System.out.println("num1==num2");
return 0; //也可以用来终止方法
}else {
result=num2;
System.out.println("num1<num2");
}
return result;
}
}
package com.lxw.method;
public class Demo01 {
//main方法
public static void main(String[] args) {
//实际参数:实际调用传递给他的参数
int add = add(1, 5,6);
System.out.println(add);
}
//加法
//形式参数,用来定义作用的
//public是公共的,所有人都可以用它
public static int add(int a, int b) { //如果要直接使用这个方法,static让这个方法成为类方法,不然无法直接在主方法调用,
// 定义一个方法名字加类型如果是void就没有返回值,如果有就有返回值
return a + b; //如果方法存在返回值的话,一定要用return返回如果是void就不用返回了
}
//方法的重载
public static int add(int a,int b,int c){
return a+b+c;
}
}
有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
package com.lxw.method;
public class Demo03 {
public static void main(String[] args) {
for(int i=0;i<args.length;i++){
System.out.println("args["+i+"]:"+args[i]);
}
}
}
package com.lxw.method;
public class Demo04 {
public static void main(String[] args) {
//调用可变参数
printMax(1,2,23,2,5,4);
printMax(new double[]{1,2,3,4,5,6,});
Demo04 demo04 = new Demo04();
demo04.test(1,2,3,4,5,6);
demo04.test(2,11,22,33,44,55);
}
public static void printMax(double... numbers){
if (numbers.length==0){
System.out.println("你没有输出任何数");
return;
}
double result=numbers[0];
//排序
for (int i = 1; i < numbers.length; i++) {
if (numbers[i]>result){
result=numbers[i];
}
}
System.out.println("最大的值是:"+result);
}
public void test(double a,int ... i){//可变参数,只能放在最后面
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
System.out.println(i[5]);
}
}
练习:
作业:
package com.lxw.method;
import java.util.Scanner;
public class DiGuiZuoYe01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()) {
double a = scanner.nextDouble();
String c = scanner.next();
double b = scanner.nextDouble();
switch(c){
case "+":
add(a,b);
break;
case "-":
minus(a,b);
break;
case "*":
multiply(a,b);
break;
case "/":
except(a,b);
break;
}
System.out.println("输入任意字母退出");
}
scanner.close();
}
public static void add(double num1, double num2) {
System.out.println( num1 + num2);
}
public static void minus(double num1, double num2) {
System.out.println( num1 - num2);
}
public static void multiply(double num1, double num2) {
System.out.println( num1 * num2);
}
public static void except(double num1, double num2) {
if(num2==0){
System.out.println("分母不能为0");
}else{
System.out.println( num1 / num2);
}
}
}
//————————————————
// 版权声明:本文为CSDN博主「ppp_melody」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
// 原文链接:https://blog.csdn.net/ppp_melody/article/details/116515970
// public static void main(String[] args) {
//
// Scanner a1 = new Scanner(System.in);
// Scanner b1 = new Scanner(System.in);
// int a=a1.nextInt();
// int b=b1.nextInt();
// int add = add(a, b);
// int jian = jian(a, b);
// int chen = chen(a, b);
// int chu= chu(a, b);
// System.out.println("a+b="+add);
// System.out.println("a-b="+jian);
// System.out.println("a*b="+chen);
// System.out.println("a/b="+chu);
//
// }
// public static int add(int a,int b){
// return a+b;
// }
// public static int jian(int a,int b){
// return a-b;
// }
// public static int chen(int a,int b){
// return a*b;
// }
// public static int chu(int a,int b){
// return a/b;
// }
数组的定义:
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar; //首选的方法
或
dataType arrayRefVar[]; //效果相同,但不是首选方法
Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar=new dataType[arraySize];
数组的元素是通过索引访问的,数组索引从0开始。
获取数组长度:
arrays.lenth
练习:
package com.lxw.array;
public class ArrayDemo01 {
//变量的类型 变量的名字 = 变量的值;
//数组类型
public static void main(String[] args) {
int[] nums;//1.数组的定义,声明一个数组
// int nums1[];//c++与C#里的定义
nums = new int[10];//创建一个数组
//给数组元素中赋值
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=4;
nums[4]=5;
nums[5]=6;
nums[6]=7;
nums[7]=8;
nums[8]=9;
nums[9]=10;
int sums=0;
for (int i = 0; i < nums.length; i++) {
sums=sums+nums[i];
}
System.out.println("数组的和为:"+sums);
}
}
写代码画图分析内存
三种初始化
int[] a={1,2,3};
Man[] mans={new Man(1,1),new Man(2,2)};
int[] a=new int[2];
a[0]=1;
a[1]=2;
练习:
package com.lxw.array;
public class ArrayDemo02 {
public static void main(String[] args) {
//静态初始化:创建+赋值
int[] a={1,2,3,4,5,6,7,8};
System.out.println(a[0]);
//引用类型
Man[] mans={new Man(),new Man()};
//动态初始化:包括默认初始化
int[] b=new int[10];
b[0]=10;
b[1]=10;
System.out.println(b[0]);
System.out.println(b[1]);
System.out.println(b[2]);
System.out.println(b[3]);
}
}
下标及越界小结
数组的四个基本特点:
public static void main(String[] args){
int[] a=new int[2];
System.out.println(a[2]);
}
ArrayIndexOutOfBoundsException:数组下标越界异常!
小结:
练习:
public static void main(String[] args) {
//静态初始化:创建+赋值
int[] a={1,2,3,4,5,6,7,8};
System.out.println(a[0]);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
练习:
package com.lxw.array;
public class ArrayDemo03 {
public static void main(String[] args) {
int[] a1={1,2,3,4,5,6};
//数组遍历一遍
for (int i = 0; i < a1.length; i++) {
System.out.println(a1[i]);
}
System.out.println("=========================");
//求累加和
int sum=0;
for (int i = 0; i < a1.length; i++) {
sum=sum+a1[i];
}
System.out.println(sum);
System.out.println("========================");
//查找最大元素
int max=a1[0];
for (int i = 0; i < a1.length; i++) {
if (a1[i]>max){
max=a1[i];
}
}
System.out.println("max为:"+max);
}
}
package com.lxw.array;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] a={1,2,3,4,5,6};
// //jdk1.5,没有下标,适合打印
// for (int i : a) {
// System.out.println(i);
//
// }
printArray(a);
int[] reverse=reverse(a);
printArray(reverse);
}
//打印按钮元素
public static void printArray(int[] a){
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
}
//反转按钮
public static int[] reverse(int[] a){
int[] result=new int[a.length];
for (int i=0,j=result.length-1;i< a.length;i++,j--){
result[j]=a[i];
}
return result;
}
}
int a[][]=new int[2][5];
num[1][0];
练习:
package com.lxw.array;
import static com.lxw.array.ArrayDemo04.printArray;
public class ArrayDemo05 {
public static void main(String[] args) {
int[][] array={{1,2},{2,3},{3,4},{4,5}};
// printArray(array[0]);
// System.out.println(array[2][0]);
// System.out.println(array[2][1]);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length ; j++) {
System.out.println(array[i][j]);
}
}
}
}
练习:
package com.lxw.array;
import java.util.Arrays;
public class ArrayDemo06 {
public static void main(String[] args) {
int[] a={1,2,3,567,548,788,842,666,777,235};
System.out.println(a);//[I@4554617c哈希值,地址值
//toString打印数组元素
System.out.println(Arrays.toString(a));
printArray(a);
Arrays.sort(a);//对数组进行排序
System.out.println(Arrays.toString(a));
//Arrays.fill(a,0);//对数组进行赋值
Arrays.fill(a,2,4,0);//对数组进行赋值
System.out.println(Arrays.toString(a));
}
public static void printArray(int[] a){
for (int i = 0; i < a.length; i++) {
if (i==0){
System.out.print("[");
}
if (i==a.length-1){
System.out.print(a[i]+"]");
}else{
System.out.print(a[i]+", ");
}
}
}
}
冒泡排序
练习:
package com.lxw.array;
import java.util.Arrays;
public class ArrayDemo07 {
//冒泡排序
//1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换它们的位置
//2.每一次比较,都会产生一个最大,或者最小的数字
//3.下一轮则可以少一次排序!
//4.依次循环,直到结束!
public static void main(String[] args) {
int[] a={1,4,5,2,7,9,78,44};
int[] sort = sort(a);//调用完我们自己写的排序方法后,返回一个排序后的数组
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] a){
//临时变量
int temp=0;
//外层循环,判断我们这个要走多久走多少次
for (int i = 0; i < a.length-1; i++) {
boolean flag=false;//通过flag标识位减少没有意义的比较
//内层循环,比较判断两个数。如果第一个数,比第二个数大,则交换位置
//i就是走过的次数啊 所以j就不用再去比较i之前已经比较过的了
for (int j = 0; j <a.length-1-i ; j++) {
if (a[j+1]<a[j]){ //a[j+1]后一个数,a[j]前一个数
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=true;
}
}
if (flag==false){
break;
}
}
return a;
}
}
如下图:左边是原始数据,右边是稀疏数组
本篇文章就到这里了,希望能给各位带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: 简单了解Java方法的定义和使用实现
本文链接: https://www.lsjlt.com/news/129112.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0