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

怎样做百度网站怎么创建网站?

怎样做百度网站,怎么创建网站?,美国外贸网站建设,用dw做网站的步骤目录 1. 方法概念及使用 1.1 什么是方法(method) 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系 1.5 没有返回值的方法 2. 方法重载 2.1 为什么需要方法重载 2.2 方法重载概念 2.3 方法签名 1. 方法概念及使用 1.1 什么是方法(method) 方法就是一…

目录

1. 方法概念及使用

1.1 什么是方法(method)

1.2 方法定义 

1.3 方法调用的执行过程

1.4 实参和形参的关系

1.5 没有返回值的方法 

2. 方法重载 

2.1 为什么需要方法重载

2.2 方法重载概念 

2.3 方法签名 


1. 方法概念及使用

1.1 什么是方法(method)

方法就是一个代码片段. 类似于 C 语言中的 "函数",因为有了对象,才被叫做方法.方法是要依赖对象才能执行的.

1. 是能够模块化的组织代码(当代码规模比较复杂的时候).

2. 做到代码被重复使用, 一份代码可以在多个位置使用.

3. 让代码更好理解更简单.

4. 直接调用现有方法开发, 不必重复造轮子.

比如:现在要开发一款日历,在日历中经常要判断一个年份是否为闰年,则有如下代码:

int year = 1900;
if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){System.out.println(year+"年是闰年");
}else{System.out.println(year+"年不是闰年");
}

1.2 方法定义 

// 方法定义
修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}

示例一:实现一个函数,检测一个年份是否为闰年

public class Method{// 方法定义public static boolean isLeapYear(int year){if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){return true;}else{return false;}}
}

示例二: 实现一个两个整数相加的方法

public class Method{// 方法的定义public static int add(int x, int y) {return x + y;}
}

【注意事项】

1. 修饰符:现阶段直接使用public static 固定搭配

2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void

3. 方法名字:采用小驼峰命名

4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

5. 方法体:方法内部要执行的语句

6. 在java当中,方法必须写在类当中

7. 在java当中,方法不能嵌套定义

8. 在java当中,没有方法声明一说 

1.3 方法调用的执行过程

【方法调用过程】

调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行 

代码示例1 计算两个整数相加

public class Method {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("第一次调用方法之前");int ret = add(a, b);System.out.println("第一次调用方法之后");System.out.println("ret = " + ret);System.out.println("第二次调用方法之前");ret = add(30, 50);System.out.println("第二次调用方法之后");System.out.println("ret = " + ret);}public static int add(int x, int y) {System.out.println("调用方法中 x = " + x + " y = " + y);return x + y;}
}// 执行结果
/*
一次调用方法之前
调用方法中 x = 10 y = 20
第一次调用方法之后
ret = 30
第二次调用方法之前
调用方法中 x = 30 y = 50
第二次调用方法之后
ret = 80*/

1.4 实参和形参的关系

   public static int getSum(int N){ // N是形参return (1+N)*N / 2;}getSum(10); // 10是实参,在方法调用时,形参N用来保存10getSum(100); // 100是实参,在方法调用时,形参N用来保存100

注意:在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体 

代码示例: 交换两个整型变量 

public class TestMethod {public static void main(String[] args) {int a = 10;int b = 20;swap(a, b);System.out.println("main: a = " + a + " b = " + b);}public static void swap(int x, int y) {int tmp = x;x = y;y = tmp;System.out.println("swap: x = " + x + " y = " + y);}
}
// 运行结果
swap: x = 20 y = 10
main: a = 10 b = 20

可以看到,在swap函数交换之后,形参x和y的值发生了改变,但是main方法中a和b还是交换之前的值,即没有交 换成功。 

【原因分析】

实参a和b是main方法中的两个变量,其空间在main方法的栈(一块特殊的内存空间)中,而形参x和y是swap方法中 的两个变量,x和y的空间在swap方法运行时的栈中,因此:实参a和b 与 形参x和y是两个没有任何关联性的变量, 在swap方法调用时,只是将实参a和b中的值拷贝了一份传递给了形参x和y,因此对形参x和y操作不会对实参a和b 产生任何影响。

注意:对于基础类型来说, 形参相当于实参的拷贝. 即传值调用

int a = 10;
int b = 20;
int x = a;
int y = b;
int tmp = x;
x = y;
y = tmp;

可以看到, 对 x 和 y 的修改, 不影响 a 和 b. 

【解决办法】: 传引用类型参数 (例如数组来解决这个问题)

public class TestMethod {public static void main(String[] args) {int[] arr = {10, 20};swap(arr);System.out.println("arr[0] = " + arr[0] + " arr[1] = " + arr[1]);}public static void swap(int[] arr) {int tmp = arr[0];arr[0] = arr[1];arr[1] = tmp;}
}
// 运行结果
arr[0] = 20 arr[1] = 10

1.5 没有返回值的方法 

方法的返回值是可选的. 有些时候可以没有的,没有时返回值类型必须写成void

代码示例 

class Test {public static void main(String[] args) {int a = 10;int b = 20;print(a, b);}public static void print(int x, int y) {System.out.println("x = " + x + " y = " + y);}
}

2. 方法重载 

2.1 为什么需要方法重载

public class TestMethod {public static void main(String[] args) {int a = 10;int b = 20;int ret = add(a, b);System.out.println("ret = " + ret);double a2 = 10.5;double b2 = 20.5;double ret2 = add(a2, b2);System.out.println("ret2 = " + ret2);}public static int add(int x, int y) {return x + y;}
}// 编译出错
Test.java:13: 错误: 不兼容的类型: 从double转换到int可能会有损失
double ret2 = add(a2, b2);

由于参数类型不匹配, 所以不能直接使用现有的 add 方法.

一种比较简单粗暴的解决方法如下: 

public class TestMethod {public static void main(String[] args) {int a = 10;int b = 20;int ret = addInt(a, b);System.out.println("ret = " + ret);double a2 = 10.5;double b2 = 20.5;double ret2 = addDouble(a2, b2);System.out.println("ret2 = " + ret2);}public static int addInt(int x, int y) {return x + y;}public static double addDouble(double x, double y) {return x + y;}
}

上述代码确实可以解决问题,但不友好的地方是:需要提供许多不同的方法名,而取名字本来就是让人头疼的事 情。那能否将所有的名字都给成 add 呢?

2.2 方法重载概念 

在自然语言中,经常会出现“一词多义”的现象,比如:“好人”。 在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。 在Java中方法也是可以重载的。

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

public class TestMethod {public static void main(String[] args) {add(1, 2); // 调用add(int, int)add(1.5, 2.5); // 调用add(double, double)add(1.5, 2.5, 3.5); // 调用add(double, double, double)}public static int add(int x, int y) {return x + y;}public static double add(double x, double y) {return x + y;}public static double add(double x, double y, double z) {return x + y + z;}
}

注意:

1. 方法名必须相同

2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)

3. 与返回值类型是否相同无关 

4. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法

2.3 方法签名 

在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?

方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

public class TestMethod {public static int add(int x, int y){return x + y;}public static double add(double x, double y){return x + y;}public static void main(String[] args) {add(1,2);add(1.5, 2.5);}
}

上述代码经过编译之后,然后使用JDK自带的javap反汇编工具查看,具体操作:

1. 先对工程进行编译生成.class字节码文件

2. 在控制台中进入到要查看的.class所在的目录

3. 输入:javap -v 字节码文件名字即可 

  

http://www.ds6.com.cn/news/60473.html

相关文章:

  • 门户网站免费奖励自己网站优化流程
  • 维护网站成本百度用户服务中心电话
  • 福州网站建设好的公司手机百度一下
  • 男做变态手术视频网站合肥seo网站排名
  • 北京建站优化公司搜索指数查询
  • 苏州餐饮 网站建设刷排名seo软件
  • 网站建设公司net2006网络seo优化公司
  • 广东网站建设公司沈阳百度推广优化
  • 在安阳想建个网站怎么做网站seo优化公司
  • 陕西省西安市制作网站今天的最新新闻内容
  • 常见的网站开发语言免费推广公司的网站
  • 一个主机可以放几个网站电销名单渠道在哪里找
  • web前端培训十大坑爹优化关键词的方法
  • 网站建设需求说明书免费建立一个网站
  • 昆明网站建设一条龙服务seo整合营销
  • 北京专业做网站公司seo店铺描述
  • html5可以做网站吗seo关键词教程
  • 做网站后台要学购买网站域名
  • 网站建设的客户需求分析调研表网络营销与直播电商专业学什么
  • 织梦网站模板修改网站推广与优化平台
  • 网站显示百度地图阿里云万网域名购买
  • 哪些网站可以做微商厦门网站建设公司名单
  • 四川建设厅电话网站网站托管服务商
  • iis6建设网站seo推广是什么意怿
  • 网站目录结构模板网店seo关键词
  • 个人网站公安备案流程网络营销师资格证报名
  • 济南哪家做网站电商营销推广有哪些?
  • 零基础做动态网站需要多久淘宝关键词排名优化
  • 网站建设美工招聘谷歌搜索引擎大全
  • 中国设计网址国外seo大神