一起学JAVA 方法 局部变量 成员变量

一起学JAVA 方法 局部变量 成员变量
1 变量
1.1 概念
可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明。
一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 ;
变量的使用原则:就近原则,即尽量控制变量的使用范围到最小

1.2 局部变量
位置:定义在方法里或者方法的声明上
注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5;
生命周期:随着方法的调用而存在,方法运行完毕就释放了

1.3 成员变量
位置:定义在类里方法外
注意:不用初始化,也会自动被初始化成默认值
生命周期:整个类中,类消失了,成员变量才会释放


899fda2e8721e5126e8d2d046090811.jpg

1.4 练习:变量的默认值测试
创建包: cn.tedu.basic
创建类: TestVariable1.java

package cn.tedu.design;
/*本类用于测试各种类型变量的默认值*/
public class TestVariable1 {
        static String name;
        static byte b;//整数类型默认值都是0
        static short c;
        static int d;
        static long e;
        static float f;//小数类型的默认值是0.0
        static double g;
        static char j;//char类型的默认值是\u0000
        static boolean h;//boolean类型的默认值是false

        public static void main(String[] args) {
            System.out.println(name);//null,引用类型的默认值
            System.out.println(b);
            System.out.println(c);
            System.out.println(d);
            System.out.println(e);
            System.out.println(f);
            System.out.println(g);
            System.out.println(h);
            System.out.println(j);
            System.out.println(h);
        }
    }

1.5 练习:局部变量与成员变量测试
创建包: cn.tedu.basic
创建类: TestVariable2.java

package cn.tedu.oop;
/**本类用于测试变量的使用*/
public class TestVariable2 {
    //2.定义成员变量:
    //1)位置:类里方法外
    //2)无需手动初始化,会自动赋予对应类型的默认值
    //3)作用域:在整个类中生效,类消失,变量才会消失
    static int count;
   
    //3.变量有一个使用的原则:就近原则
    static int sum = 200;
    public static void main(String[] args) {
        //1.定义局部变量:
        //1)位置:在方法里/局部代码块里
        //2)必须手动初始化
        //3)作用域:在方法/局部代码块中,对应的代码执行完局部变量就被释放
        int sum = 100;//定义在方法中的局部变量sum
        System.out.println(sum);//变量的就近原则:使用的都是自己附近的变量,100
        System.out.println(count);
       
        for (int i = 0; i < 10; i++) {//局部变量i只能在循环中使用
            System.out.println(i);
        }
        //System.out.println(i);//报错:无法引用变量i:i cannot be resolved to a variable
    }
}

2 方法
2.1 概述
被命名的代码块,方法可以含参数可以不含参数,可以提高代码的复用性。

2.2 方法定义的格式


73b4daa99b0f5b7c7281bf5aa4bb9ae.jpg

2.3 方法调用顺序图
顺序执行代码,调用指定方法,执行完毕,返回调用位置


63f9af5c24d4acd3d752a2214951cae.jpg

2.4 练习:测试方法的调用顺序/参数/返回值
创建包:cn.tedu.method

创建类:TestMethod .java

package cn.tedu.method;
/**本类用于测试方法*/
public class TestMethod {
    //1.创建程序的入口函数main()
    public static void main(String[] args) {
        System.out.println(1);
        /**2.我们通过方法名+参数列表的方式来调用方法的功能*/
        method1();//调用method1()
        System.out.println(2);
        method2(3);//调用method2()
        int result = method3(1,2);//调用method3()
        System.out.println(result);
    }

    /**3.如果方法想要返回值,必须修改返回值类型
     * 并且return对应类型的结果
     * 如果方法的返回值类型是void,不允许有返回值
     * */
    /*本方法用来测试方法的返回值类型*/
    public static int method3(int i, int j) {
        /**4.通过return关键字将方法结果返回到调用位置*/
        return i+j;
    }

    /**1.方法的修饰符 方法的返回值类型 方法名(方法参数){方法体}*/
    /*method1()想测试方法的调用顺序*/
    public static void method1() {
        System.out.println(5);
        System.out.println(6);
        System.out.println(7);
    }
    
    /*本方法用来测试方法的参数,参数的位置在小括号里*/
    public static void method2(int a) {
        System.out.println("海绵宝宝今年:"+ a +"岁啦~");
    }   
}

2.5 方法的重载
方法的重载是指在一个类中定义多个同名的方法,但是每个方法的参数列表不同(也就是指参数的个数和类型不同),程序在调用方法时,可以通过传递给他们的不同个数和类型的参数来决定具体调用哪个方法.

2.6 练习:测试方法的重载
创建包: cn.tedu.method
创建类: TestMethodOverload.java

package cn.tedu.method;
/**本类用于测试方法的重载*/
public class TestMethodOverload {
    public static void main(String[] args) {
        /**1.我们根据方法名+参数列表确定具体调用哪个方法*/
        /**2.方法的重载:
         * 在同一个类中,存在方法名相同,但参数列表不同的方法
         * 如果在同类中,同名方法的参数个数不同,一定构成重载
         * 如果在同类中,同名方法的参数个数相同,
         * 需要查看对应位置上参数的类型,而不是参数名,与参数名无关
         * (int a,String b)与(int b,String a)--不构成重载
         * (int a,String b)与(String a,int b)--构成重载
         * */
        //2.调用method()
        method();
        //4.调用method(int)
        method(666);
        //6.调用method(int,String)
        method(888,"泡泡");
    }

    //1.创建一个无参的method()
    public static void method() {
        System.out.println("哈哈哈哈我没参数");
    }
    //3.创建一个method(int n)
    public static void method(int n) {
        System.out.println("哈哈哈哈我的参数是:"+n);
    }
    //5.创建一个method(int n,String s)
    public static void method(int a,String b) {
        System.out.println(b+"今晚要干他"+a+"碗大米饭");
    }
    public static void method(String a,int b) {
        System.out.println(b+"今晚要干他"+a+"碗大米饭");
    }
}

3 拓展 成员变量与局部变量的区别


6581fc5a9836a819c677602b662aa24.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 栈帧是栈里面存储的基本单位 一个线程对应一个虚拟机栈 一个虚拟机栈中有很多栈帧 一个栈帧对应一个方法 栈帧里面有局...
    eden_0e6c阅读 1,261评论 0 0
  • mysql数据库基础知识总结 推荐一套java[https://link.zhihu.com/?target=ht...
    傲娇才不会的阅读 682评论 0 0
  • paypal支付,适用于 andriod 和 IOS & web ,andriod 和 ios 记得webview...
    dshbtr阅读 1,768评论 0 0
  • DAY 01 JAVA简述 Java是由SUN公司在1995年推出的一门高级编程语言,是现今服务器端的首选编程语言...
    周书达阅读 4,612评论 0 0
  • Science | CRISPR精准改造原代T细胞对抗癌症 原创图灵基因图灵基因 收录于话题#前沿分子生物学技术 ...
    图灵基因阅读 1,111评论 0 0