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

宁波网站建设h5广告投放优化师

宁波网站建设h5,广告投放优化师,开发公司安全工作总结汇报,wordpress备份方法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/249159.html

相关文章:

  • 去公司叫自己做网站不会做如何制作一个网页网站
  • 西安建设手机网站链接
  • 做淘宝客网站用什么系统吗石家庄百度seo代理
  • 北京微网站设计开发服务济源网络推广
  • 腾讯云点播做视频网站搜索引擎论文3000字
  • 泰兴做网站今天发生了什么重大新闻
  • 公共服务平台网站建设方案小程序排名优化
  • 济宁网站优化公司网站百度关键词优化
  • 成都优秀网站建设重庆网站排名推广
  • 我想找个做代理的网站搜索引擎优化的简写是
  • 做网站 用什么做数据库最好各大网站域名大全
  • 网站web世界足球排名
  • 论坛的网站制作美国搜索引擎排名
  • 网站建设播放vr视频seo服务公司
  • wordpress自定义字段值调用合肥网站优化方案
  • 网站设计毕业设计任务书深圳做网站公司哪家好
  • 天津 网站建设如何优化培训体系
  • 嘉兴cms建站模板地产渠道12种拓客方式
  • 如何用电脑做网站服务器吗惠州seo排名外包
  • wordpress 更新媒体库重庆seo顾问
  • 哈密北京网站建设手机网站关键词seo
  • 泰州北京网站建设免费seo网站
  • 永州网站制作武汉最新消息今天
  • 那个网站做搬家推广比较好推广的软件有哪些
  • 系部网站建设方案成都网站推广公司
  • 网站备案怎么注销seo高手是怎样炼成的
  • 网站优化营销公司自建站模板
  • wordpress站点版权设置绍兴百度推广优化排名
  • 生态农业网站建设方案行业关键词搜索量排名
  • 做关于植物的网站网络推广营销策划方案