Java面向对象编程2

成员变量和局部变量

局部变量:

        定义:在方法内定义的变量称为局部变量

        作用域:从变量定义开始到方法结束

        注意;

                1、局部变量只能在当前方法中使用,其他地方都不能使用

                2、局部变量如果没有使用,只是定义的话,不会报错,但是如果有引用,那么必须 

                     先进行初始化才能使用

                3、局部变量没有默认值,所以在使用之前必须先进行初始化

成员变量(全局变量)

        定义:在类内,方法之外定义的变量称为成员变量

        作用域:整个类体都可以访问

        注意:成员变量有默认值,系统会根据变量的数据类型给默认值

        int —>0        boolean —>false        String—>null

public class VarDemo {
        //属性(成员变量)
        int age = 18;
        String name;
        //定义一个方法
        public void able(){
            //局部变量
            String name = "孙悟空";
            System.out.println(name);
            //可以在方法中打印出类中定义的成员变量
            System.out.println(age);
        }
        public void test(){
            System.out.println(age);
            age = 20;
            System.out.println(age);
            //注意这里的int age = 25;为局部变量;上面的两个age是成员变量
            int age = 25;
            System.out.println(age);
        }
        public static void main(String[] args){
            //创建对象
            VarDemo var = new VarDemo();
            var.able();
            //无法从静态上下文中引用非静态的变量age
            //System.out.println(age);错误
            System.out.println(var.age);
            var.test();
            System.out.println(var.age);
        }
}
区别成员变量局部变量
位置不同再类中方法外方法内或者方法声明上
内存中位置不同在堆内存在栈内存
作用域不同

整个类体都可以访问

从变量的定义开始到此方法结束
生命周期不同随着对象存在而存在,随着对象消失而消失随着方法的调用而存在,随着方法调用完毕而消失
初始化值不同

有默认的初始化值:根据数据类型的默认值默认的给初始化值

(int默认值为0,boolean默认值为false,String(引用类型)默认值为null)

没有默认的初始化值,必须先定义、赋值

才能够使用

构造方法:

        在创建对象的时候默认的会调用构造方法,在堆中进行存储,主要目的是为了对成员变量进行初始化操作

语法:

        修饰符:有4个(public、protected、[default]、private)

        返回值:构造方法没有返回值

        方法名:构造方法的的名称必须和类名保持一致

        参数列表:和普通方法一样

        方法体:主要是为成员变量进行初始化操作

 注意:

        1、当程序中没有显示的声明一个构造方法的时候,系统会给你一个默认的不带任何参数的

空构造方法来供你创建对象使用

         2、当你在程序中显示的声明了一个非空的构造方法,那么java编译器就不会再给你那个空参

的构造方法了,但是这时候你又想用空参的构造方法,那么只有再定义一个构造方法了

        3、一个类中可以有多个构造方法

重载(overload):在一个类中可以有多个同名的方法,但是要求方法的参数列表不同
          三方面的不同:
            1、参数个数不同
            2、参数类型不同
            3、参数顺序不同
 
            注意:
              一般都需要使用构造方法的重载,因为成员变量可能会有很多个,但是我们只需要对部分成员变量进行初始化操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值