概述
一、Package关键字(包)
1.使用 http://www.bianyiit.com
1.1 包名最好是公司域名反写 com.bianyiit 加上对应的功能名称
1.2 包名建议小写
2.使用包的作用:
2.1 将我们的java代码进行分类管,一个包相当于一个文件夹
Java中 package 和类名才能能唯一确定一个类
二、方法(函数)–也有称其为功能/行为
1.定义:将一些具有特定功能的代码封装起来
2.方法的使用
package com.method;
public class Demo_NoCan_NoFan {
//参考主方法写一个方法用于输入一句“helloworld”
public static void main(String[] args) { --程序的入口-main方法/主方法
print(); --主方法调用自定义的方法
}
public static void print(){ --自定义的方法在main方法的外面
System.out.println("hello world!");
}
}
注意:
1.方法必须先创建才可以使用,该过程成为方法定义
2.方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程称为方法调用
3.自定义的方法必须在main方法的外面,千万千万不能写在main方法的里面
3.参数:主方法提供给自定义方法的值(相当于自己给别人东西)
4.返回值:自定义方法返回给主方法的值(相当于别人给自己东西)
5.方法的命名规范:小驼峰命名法,第一个字母小写后面的每一个字母都要大写--getMax()
6.main方法讲解:public static void main(String[] args){} //程序的入口
public 公共的,为了让虚拟机能够识别一定不能去掉或更改,如果去掉JVM就直接找不到Demo类了,主方法的public不能去掉,但是类的public可以去掉
static 静态的,主方法已经固定好了格式的,不能随意更改,但是自定义的方法可以随意改动--这也是main方法的标志
void 无返回值,如果更改为int类型,同样会直接报错
main 主方法的名称,如果手误改成了mian,同样会直接出错,这是Java虚拟机能够识别程序入口特定的名字
String 如果更改成int类型会报错,但是这里如果只是输出args的长度并不会报错System.out.println(args.length);
args 整个方法中唯一可以更改的只有args--这也是main方法的特别之处,其它任何数据都不能随意更改,否则会导致虚拟机无法识别主方法
5.方法的分类(4种)
5.1 无参数无返回值方法
定义:主方法不用提供给自定义方法值,自定义方法也不用返回给主方法值
package com.method;
public class Demo_NoCan_NoFan {
//参考主方法写一个方法用于输入一句“helloworld”
public static void main(String[] args) { --程序的入口-main方法/主方法
print(); --主方法调用自定义的方法
}
public static void print(){ --自定义的方法在main方法的外面
System.out.println("hello world!");
}
}
5.2无参数有返回值方法
定义:主方法不用提供给自定义方法值,自定义方法也不用返回给主方法值
package com.method;
public class Demo_NoCan_YouFan {
public static void main(String[] args) {
//有返回值的方法接收1--用相应数据类型的变量去接收
int money=jieQian();
System.out.println(money);
//有返回值的方法接收2--不使用变量去接收,而是使用输出接收
System.out.println(jieQian());
}
/*public static void jieQian(){ }
参考主方法写的自定义的方法如上,打印输出一句“向别人借100元”
根据需要加上return 需要返回的具体值,并且将返回值的类型void改为int类型
将这个方法更改为下述方法
public static int jieQian(){
//这里使用代码去完成你需要做的那件事情--打印输出一句“向别人借100元”
return 需要返回的具体值; //最后一定需要写上return xxx;
}
*/
public static int jieQian(){
System.out.println("向别人借100元");
return 100;
}
}
重点:
方法如果有返回值,那么方法的返回值的类型就不能是void,而是根据需求确定返回值的类型--int/String..
区别:
1.无返回值的方法可以直接调用,不需要变量接收
2.有返回值的方法需要用变量接收,也可以使用输出调用
5.3 有参数无返回值方法
定义:主方法提供给自定义方法值,自定义方法不用返回给主方法值
package com.method;
public class Demo_YouCan_NoFan {
public static void main(String[] args) {
int money=100;
//提供一个参数money给自定义的方法
huanQian(money);
}
public static void huanQian(int money){ //接收主方法传过来的参数money,值为100
//还给别人100块,别人拿着用掉了25元
int a=money-25;
System.out.println(a);
}
}
5.4 有参数有返回值方法
定义:主方法提供给自定义方法值,自定义方法同样返回给主方法值
package com.method;
public class Demo_YouCan_YouFan {
//买东西
public static void main(String[] args) {
System.out.println(buy(7));
String a=chaoCai("小鸡","炖","蘑菇"); //传参,并通过String类型的a来接收返回的值
System.out.println(a);
}
public static String buy(int money){ //自定义方法中含有参数
//money>0&&money<=5 "棒棒糖"
//money>5&&money<=15 "辣条"
//money>15&&money<=30 "烟"
//money>30&&money<=100 "旺仔牛奶"
//money为其它值 "电视机"
if(money>0&&money<=5){
return "棒棒糖";
}else if(money>5&&money<=15){
return "辣条";
}else if(money>15&&money<=30){
return "烟";
}else if(money>30&&money<=100){
return "旺仔牛奶";
}else{
return "电视机"; //返回值
}
}
public static String chaoCai(String a,String b,String c){
return a+b+c;
}
}
注意:多重if_else语句的最后一个else在有返回值的方法里面,不能够省略,在没有返回值的方法里面,else是可以省略的
6.使用方法时的一些小细节:
6.1 无返回值的方法里面可以写return吗??
可以存在,但是必须写成return;代表方法已结束,不能写成return xxx;
6.2 方法里面可以写其它方法吗??---不可以
6.3 方法里面可以调用其它方法吗??---可以,而且并不仅仅只能调用一个方法,允许调用多个其它方法
6.4 方法里面可以调用自己本身吗??
原则上是不可以的,但是在递归调用的时候可以调用自己本身,否则会出现StackOverflowError(栈内存溢出错误)
导致的原因:不停的调用方法其实是JVM不断的往栈内存中加载方法,而每一个方法在栈内存中都会占用一定的空间,最终会导致栈内存全部消耗完,所以会报错
6.5 在参数的列表中参数的个数和类型都没有限制,根据需要去传参
7.方法在内存中的执行流程
1.先加载main方法到栈内存中,只要是方法都会加载到栈中,而不会加载到堆或者方法区
2.然后加载自定义方法到栈中,而为方法开辟的空间叫做栈帧
最后
以上就是乐观羊为你收集整理的Java学习的第十天(JavaSE基础06_方法)----基础篇的全部内容,希望文章能够帮你解决Java学习的第十天(JavaSE基础06_方法)----基础篇所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复