当前位置: 首页 > wzjs >正文

专业做俄语网站建设司网络推广和网站推广

专业做俄语网站建设司,网络推广和网站推广,html模板素材,外汇网站建设Java方法详解 方法1.方法的概念(1).什么是方法(2).方法的定义(3).实参与形参的关系 2.方法重载(1).方法重载的概念 3.递归(C语言详细讲过) 方法 1.方法的概念 (1).什么是方法 方法类似于C语言中的函数,我们重在体会与理解,不必…

Java方法详解

    • 方法
      • 1.方法的概念
        • (1).什么是方法
        • (2).方法的定义
        • (3).实参与形参的关系
      • 2.方法重载
        • (1).方法重载的概念
      • 3.递归(C语言详细讲过)

方法

1.方法的概念

(1).什么是方法

方法类似于C语言中的函数,我们重在体会与理解,不必去强硬地去背
1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
2. 做到代码被重复使用, 一份代码可以在多个位置使用.
3. 让代码更好理解更简单.
4. 直接调用现有方法开发, 不必重复造轮子.

(2).方法的定义

我们最早见过的是main方法,我们可以把它作为C语言中的函数去理解
例如: 定义个main方法:

    public static void main(Sting[] args){}//public static(这两个东西不能省略掉) //void是指的是无类型的返回值, main是方法名,其后的括号中是形式参数列表所以我们应定义一个:public static 返回值 方法名(参数类型 形参){方法体代码return(返回值)}

在这里:我要先就关于大驼峰与小驼峰的命名方式先说一下
大驼峰:每个单词的首字母大写: 例如 DemoTest,MyClass
小驼峰:只有第一个单词的首字母大写,后续每个单词的首字母都大写,其余小写 例如:myFunction,userProfile等

示例:判断某年是不是闰年

public static boolean isLeapYear1(int year){if(0 == year % 4 && 0 != year % 100 || 0 == year %400){System.out.println(year + "是闰年");return true;//由于boolean类型,所以需要返回两个值}else{System.out.println(year + "不是闰年");return false;}
}public static void main(String[] args) {Scanner sc = new Scanner (System.in);int year = sc.nextInt();isLeapYear1(year);sc.close();}

注意事项:
1. 修饰符:现阶段直接使用public static 固定搭配
2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成
void
3. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
4. 方法体:方法内部要执行的语句
5. 在java当中,方法必须写在类当中,不能嵌套定义
6. 在java当中,没有方法声明一说,声明必须要在主函数之前,所以我们可以不用在意
7. 一个方法可以多次去调用
示例:

public static void main9(String[] args) {boolean flg1 = isLeapYear3(2025);//2025是实际参数System.out.println(flg1);boolean flg2 = isLeapYear3(2024);//2025是实际参数System.out.println(flg2);
}public static boolean isLeapYear3(int year) {//int year是形式参数if (0 == year % 4 && 0 != year % 100 || 0 == year % 400) {return true;//由于boolean类型,所以需要返回两个值} else {return false;}}  
(3).实参与形参的关系
import  java.util.Scanner;
public static int func1(int x) {int ret = 1;for (int j = 1; j <= x; j++) {ret *= j;}return ret;
}public static void main1(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();int ret = func1(a);System.out.ptrintln(ret);
}        

在Java中,实参的值永远都是拷贝到形参之中,形参和实参本质是两个实体。
但是两者的栈帧并不一样,都是在一个栈空间(虚拟机栈)中,但是所处的区域不同

//老生常谈的例子
//交换变量
//正常版:public static void main2(String[] args){int a = 10;int b = 20;int temp = 0;temp = a;a = b;b =temp;System.out.println(a + " " + b);}//方法版public static void swap4(int x ,int y) {int temp = 0;temp = x;x = y;y =temp;}//当这个方法走完,那么也就是把x和y的变量的值进行交换完成。//但是也只是把它们被赋予的值进行交换完成//对于a和b的本身没有任何影响public static void main3(String[] args){int a = 10;int b = 20;//a和b的局部变量//作用域:在方法中//生命周期:调用方法的创建,方法调用结束的时候来销毁//内存:储存在栈上//Java中由于其安全性,不会让你拿到局部变量的地址System.out.println("交换前"+ a + " " + b);//swap(a,b);System.out.println("交换后"+ a + " " + b);}

就目前来看,学完类和对象才能知道怎么交换,Java中没有指针这一个概念;
但是有引用这一个概念,“引用”叫做引用变量;引用变量中存入的是地址。
数组就是一个引用变量
当一个方法没有返回值,所以我们就要用void类型来接收

2.方法重载

(1).方法重载的概念

在Java中如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。

//    public static int addInt(int x,int y){
//        return x + y;
//    }
//
//    public static double addDouble (double x,double y){
//        return x + y;
//    }//这时候方法里的名字不一样,所以我们可以创建新的方法名从而计算。//当然这不是方法重载public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();
//        System.out.println(addInt(a, b));//System.out.println(add(a, b));double c1 = sc.nextDouble();double c2 = sc.nextDouble();
//        System.out.println(addDouble(c1,c2));//System.out.println(add(c1,c2));sc.close();}public static int add(int x,int y){return x + y;}public static double add(double x,double y){return (int)(x + y);//这么做强制转化,如果仅仅是返回值不同,这种仅有返回值改变,那么这就不叫做方法重载}//这部分方法的操作叫做重载,只有一个名字都是add

方法重载:
1.方法名相同
2.参数列表不同【数据类型,变量个数,顺序】
3.返回值不影响重载

3.递归(C语言详细讲过)

必要条件:
1.将原问题转为多个子问题,(子问题必须要与原问题解法相同)
2.递归出口

public static int func(int n){if(n == 1 || n == 0){return 1;}int ret = n * func(n-1);return ret;}public static void main5(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();System.out.println(func(5));}    

调用栈:
方法调用的时候,会有一个“栈”这样的内存空间描述当前的调用关系,称为调用栈.
每一次的方法调用就称为一个 “栈帧”, 每个栈帧中包含了这次调用的参数是哪些, 返回到哪里继续执行等信息.

按顺序打印1 2 3 4

public static void print (int n){if(n > 9){print(n / 10);}//当n为一个数时,那么可以直接打印System.out.print(n % 10 + " ");}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();print(n);}

求斐波那契数列第N项数

public static int funca(int n) {/*if(n <= 2)*/if(n == 1 || n == 2){return 1;//这两种写法均可以}else {return  funca(n - 1) + funca(n - 2);}
}public static void main8(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();System.out.println(funca(n));}

这个代码不适合用递归去写,程序执行速度极慢. 原因是进行了大量的重复运算.

//迭代写法
public static long funcaA(long n){long a = 1;long b = 1;long c = 1;while(n > 2){c = a + b;a = b;b = c;n--;}return c;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);long n = sc.nextInt();System.out.println(funcaA(n));}//后续:在二叉树我们经常需要使用递归去解决问题```
好了,今天我们就分享到这里了,如果有什么不足,劳烦大家帮忙在评论区指出,谢谢大家了!让我们下一次见!
http://www.dtcms.com/wzjs/35021.html

相关文章:

  • 网站开发营销型营销推广计划书
  • 建立微信公众号收费吗青岛seo关键词优化公司
  • wordpress怎么做商城网站个人免费开发app
  • 搭建网站开发网站环境怎样注册自己的网站
  • 个人网站 cdn大数据营销 全网推广
  • 网站建设微企嘉兴网站建设
  • 高端建网站多少钱独立站建站需要多少钱
  • 衡阳网站优化教程亚洲长尾关键词挖掘
  • 武清做网站的关键词seo排名优化软件
  • 常用网站logo网络口碑营销的成功案例
  • 深圳 b2c 网站建设重庆seo排名优化费用
  • 新乡做网站公司哪家好百度收录什么意思
  • CDN 网站是否需要重新备案网站备案查询官网
  • 专业网站运营托管百度指数如何提升
  • githup网站建设南宁网络推广外包
  • 怎么用小程序做微网站金融网站推广圳seo公司
  • 做时彩网站违法吗小说关键词搜索器
  • 华云电力建设监理公司网站crm系统网站
  • 礼品册兑换 网站建设搜索排名优化
  • 网站美工培训机构国外网站如何搭建网页
  • 学校网站建设项目的wbs关键词推广排名软件
  • 用记事本做网站缺少body北京网优化seo优化公司
  • 做网站南宁域名查询网站入口
  • 韩国服装网站建设网络推广专员是做什么的
  • 惠州热门的网站网站建设优化400报价
  • alexa全球网站排名分析品牌推广是做什么的
  • 怎样分析网站做seo在线刷关键词网站排名
  • 进空间的网站吗新网站快速收录
  • 加强政务网站建设谷歌seo服务公司
  • 郑州管城建设网站全球网络营销公司排名