我是靠谱客的博主 乐观羊,最近开发中收集的这篇文章主要介绍Java学习的第十天(JavaSE基础06_方法)----基础篇,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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_方法)----基础篇所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部