简单网站开发实例总结,网站建设 麻烦吗,营销型网站重要特点是,投简历找工作哪个网站好目录
一、Java方法 * 有返回类型#xff0c;在方法体里就一定要返回相应类型的数据。没有返回类型#xff08;void#xff09;#xff0c;就不要返回#xff01;#xff01; * 方法没有声明一说。与C语言不同#xff08;C语言是自顶向下读取代码#xff09;#…目录
一、Java方法 * 有返回类型在方法体里就一定要返回相应类型的数据。没有返回类型void就不要返回 * 方法没有声明一说。与C语言不同C语言是自顶向下读取代码而Java是全局的所以不管在main前面或者后面的方法函数都能被识别到。 * 同C语言一样函数不能嵌套定义。Java的方法也不能嵌套定义。
二、实参和形参的关系
在Java中实参的值永远都是拷贝到形参中形参和实参本质是两个实体 三、方法的重载 1.在Java中如果多个方法的名字相同参数列表不同则称该几种方法被重载了。 /** * 方法重载 * 1.方法名 必须相同 * 2.参数列表不同个数、类型、顺序 * 3.返回类型不影响 */
2.方法签名 四、递归 一、Java方法 同C语言一样要反复实现一个效果和功能的时候我们为了方便写了一个有一个函数去调用。Java的方法也类似。 * 有返回类型在方法体里就一定要返回相应类型的数据。没有返回类型void就不要返回 * 方法没有声明一说。与C语言不同C语言是自顶向下读取代码而Java是全局的所以不管在main前面或者后面的方法函数都能被识别到。 * 同C语言一样函数不能嵌套定义。Java的方法也不能嵌套定义。 //方法不能嵌套定义err
// public static void main1(String[] args) {
// public static void main2(String[] args){
//
// }
// }
} * 且方法只能写在类当中 举例实现一个求两数之和的方法 public class Method{
// 方法的定义
public static int add(int x, int y) {
return x y;
}
} 二、实参和形参的关系 在Java中实参的值永远都是拷贝到形参中形参和实参本质是两个实体 public static void swap(int a,int b) {int tmp a;a b;b tmp;}public static void main3(String[] args) {int x 10;int y 20;System.out.println(交换前x x y y);swap(x,y);//形参只是实参的临时拷贝虽然在函数里交换了值出了函数就会被销毁并没有影响实参//不同于C语言Java没有指针。如果希望改变实参需要后期学到类和对象。System.out.println(交换后x x y y);} 可以发现交换前后并没有变化也就是根本没有交换。 这其实并不是我们编写的方法有问题而是 形参和实参的关系 没有理解 分析 实参 a 和 b 是 main 方法中的两个变量其空间在 main 方法的栈 ( 一块特殊的内存空间 ) 中而形参 x 和 y 是 swap 方法中 的两个变量x 和 y 的空间在 swap 方法运行时的栈中因此实参 a 和 b 与 形参 x 和 y 是两个没有任何关联性的变量 在 swap 方法调用时只是将实参 a 和 b 中的值拷贝了一份传递给了形参 x 和 y 因此对形参 x 和 y 操作不会对实参 a 和 b 产生任何影响。 注意对于 基础类型 来说 , 形参相当于实参的拷贝 . 即 传值调用 三、方法的重载 以add举例这里定义的求两数之和的的参数是int和int那假如我要求float和float的和呢 public class Method{
// 方法的定义
public static int add(int x, int y) {
return x y;
}
} 可以在定义个add2 public class Method{
// 方法的定义
public static int add2(float x, float y) {
return x y;
}
} 但是还有其他类型都要一个一个重新定义方法吗 1.在Java中如果多个方法的名字相同参数列表不同则称该几种方法被重载了。 /** * 方法重载 * 1.方法名 必须相同 * 2.参数列表不同个数、类型、顺序 * 3.返回类型不影响 */ 例如我这个两个方法都叫add参数列表不同就是方法重载。 方法重载的好处就是只需要记住一个方法名就可以调用实现相同的功能尽管参数不同 public static int add(int a, int b) {return a b;}public static double add(double a, double b) {return a b;}public static void main3(String[] args) {System.out.println(add(4, 6));System.out.println(add(1.2,3.8));}2.方法签名 在同一个作用域中不能定义两个相同名称的标识符。比如方法中不能定义两个名字一样的变量那 为什么 类中就可以定义方法名相同的方法 呢 方法签名即经过编译器编译修改过之后方法最终的名字。 具体方式 方法全路径名参数列表返回值类型 构成 方法完整的名字。 以上面的add来看虽然两个类都叫add但是由于参数不同构成的完整的方法名其实是不同的这样也能区别两个类。 上述代码经过编译之后然后使用 JDK 自带的 javap 反汇编工具查看具体操作 1. 先对工程进行编译生成 .class 字节码文件 2. 在控制台中进入到要查看的 .class 所在的目录 3. 输入 javap -v 字节码文件名字即可 四、递归 一个方法在执行过程中调用自身 , 就称为 递归 。 例如求n的阶乘以及阶乘之和 public static long fac(long n) {int ret 1;for (int i 1;i n;i){ret * i;}return ret;}public static long facNum(long k) {long sum 0;for (int i 1; i k; i) {sum fac(i);}return sum;}public static void main2(String[] args) {long a fac(5);System.out.println(a);long b facNum(5);System.out.println(b);} 每调用自己一次就是递的过程但是往下递的时候自己这个函数并没有销毁。1234就是递等到最底层无法继续递的时候开始将结果一层一层返回这个就是归5678就是归。返回一层就将这个函数销毁。直到最后返回ret到main函数里。