栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java面向对象编程2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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、参数顺序不同
 
            注意:
              一般都需要使用构造方法的重载,因为成员变量可能会有很多个,但是我们只需要对部分成员变量进行初始化操作

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号