HAIHAIHEI 发表于 2022-4-1 22:00

java学习第十七天

第十七天,有不对之处麻烦各位指正
代码的封装:
先编译以下代码:
public class S
{
        public static void p(){
        System.out.println();
        }
//输出int
        public static void p(int i){
        System.out.println(i);
        }
//输出double
        public static void p(double d){
        System.out.println(d);
        }
//输出byte
        public static void p(byte b){
        System.out.println(b);
        }
//输出short
        public static void p(short s){
        System.out.println(s);
        }
//输出long
        public static void p(long l){
        System.out.println(l);
        }
//输出float
        public static void p(float f){
        System.out.println(f);
        }
//输出boolean
        public static void p(boolean o){
        System.out.println(o);
        }
//输出char
        public static void p(char c){
        System.out.println(c);
        }
//输出String
        public static void p(String t){
        System.out.println(t);
        }

}
那么在以上代码编译后,我们通过编译以下代码发现:
public class test
{
        public static void main(String[] args){
        System.out.println("test");
        S.p(1);
        S.p("test");
        }
}
以上代码仍然可以运行。(注:两个代码不在同一个文件中,但在同一个文件夹中)
那么,这就可以视作一种封装。(同时也可以推断出:println也是一种方法,可以通过看Java底层源代码来找到)

方法递归:
/*
        方法递归:
        1.什么是方法递归
        方法自己调用自己,这就是方法递归
       
        2.当递归时,程序没有结束条件,一定会发生:
        栈内存溢出错误:stack over flow Error
        所以递归一定要有结束条件
       
        JVM发生错误后就只有一个结果,就是退出JVM

        3.递归有结束条件就一定不会发生栈内存溢出错误吗
        假设这个结束条件是对的,是合法的,递归有的时候也会出现栈内存溢出错误
        因为有可能递归的太深,栈内存不够,因为一直压栈
       
        4.在实际的开发中,不建议轻易的选择递归,能用for循环while循环替代的,尽量使用循环来做,因为循环的效率高,耗费的内存少。递归耗费的内存比较大,另外递归的使用不当,会导致JVM死掉。(但在极少数的情况下,不用递归,出现无法实现)
*/
public class 方法递归{
        //人口
        public static void main(String[] args){
        doSome();
        }
       
        public static void doSome(){
                System.out.println("doSome begin");
                //调用方法doSome既然是一个方法,那么这个方法就可以被调用
                doSome();
                //这行代码永远执行不到
                System.out.println("doSome over");
        }

}

案例:计算从1~n累加
//先不使用递归,请编写程序,计算1~n的和
public class 从1加到n{
        public static void main(String[] args){
        //1~10的和
        int retValue1 = sum(10);
        System.out.println(retValue1);
       
        //1~3
        int retValue2 = sum(3);
        System.out.println(retValue2);
        }

        //单独编写一个计算1~n和的方法
        public static int sum(int n){
                int result = 0;
                for(int i=1;i<=n;i++){
                        result +=i;
                }
        return result;
        }
}

//使用递归,请编写程序,计算1~n的和
public class 从1加到n第二种
{
        public static void main(String[] args){
        //1~3的和
        int retValue = sum(3);
        System.out.println(retValue);
        }

        //单独编写一个计算1~n和的方法
        //这个代码修改为递归的方式
        //3+2+1或1+2+3
        public static int sum(int n){
                //n最初等于3
                //3+2(2是通过:n-1)
                //sum(n-1);
                if(n==1){
                return 1;
                }
                //程序能执行到此处说明此时n不是1
                return n + sum(n-1);
       
        }
}

HAIHAIHEI 发表于 2022-4-1 22:03

纯手打,如果有不对之处希望各位大佬指出,感激不尽{:1_893:}(注:讲真,封装那里没太明白,主要是粗略的看了个例子,后面会详细讲到)

xQQ 发表于 2022-4-1 22:25

努力学习的人,值得表扬。 加油……

wda114514 发表于 2022-4-1 22:57

支持加油努力学习奋发图强

一介书生 发表于 2022-4-1 23:02

哈哈,看看我的历史帖子,加油

currentNB 发表于 2022-4-1 23:08

楼主加油,今天我收到offer了,也希望楼主努力的卷下去。{:301_987:}

494635277 发表于 2022-4-1 23:10

         支持   每天学习一点

cghost 发表于 2022-4-1 23:44

这是照哪个教程还是教材学呢?

zhuguang123 发表于 2022-4-2 01:19

currentNB 发表于 2022-4-1 23:08
楼主加油,今天我收到offer了,也希望楼主努力的卷下去。

请问你学到了什么程度?感觉好迷茫,学了还容易忘

currentNB 发表于 2022-4-2 07:27

zhuguang123 发表于 2022-4-2 01:19
请问你学到了什么程度?感觉好迷茫,学了还容易忘

工作一年了,裸辞了1个月找到个甲方
页: [1] 2
查看完整版本: java学习第十七天