吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 788|回复: 19
收起左侧

[学习记录] java学习第十七天

[复制链接]
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);
	}

}

那么在以上代码编译后,我们通过编译以下代码发现:
[Java] 纯文本查看 复制代码
public class test
{
	public static void main(String[] args){
	System.out.println("test");
	S.p(1);
	S.p("test");
	}
}

以上代码仍然可以运行。(注:两个代码不在同一个文件中,但在同一个文件夹中)
那么,这就可以视作一种封装。(同时也可以推断出:println也是一种方法,可以通过看Java底层源代码来找到)

方法递归:
[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累加
[Java] 纯文本查看 复制代码
//先不使用递归,请编写程序,计算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;
	}
}


[Java] 纯文本查看 复制代码
//使用递归,请编写程序,计算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);
	
	} 
}

免费评分

参与人数 2热心值 +2 收起 理由
sanyuebeichen + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| HAIHAIHEI 发表于 2022-4-1 22:03
纯手打,如果有不对之处希望各位大佬指出,感激不尽(注:讲真,封装那里没太明白,主要是粗略的看了个例子,后面会详细讲到)
xQQ 发表于 2022-4-1 22:25
wda114514 发表于 2022-4-1 22:57
一介书生 发表于 2022-4-1 23:02
哈哈,看看我的历史帖子,加油
currentNB 发表于 2022-4-1 23:08
楼主加油,今天我收到offer了,也希望楼主努力的卷下去。
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个月找到个甲方
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表