zoukankan      html  css  js  c++  java
  • Java 面向对象(三)类的成员 之 属性

    一、属性(成员变量)

      1、概念

        在类中声明的变量,用于描述类的状态信息。

      2、语法格式

    修饰符 数据类型 属性名 = 初始化值 ; 

        说明:

          (1)修饰符:常用的权限修饰符由:private、缺省、protected、public;其他修饰符:static、final(暂不考虑)

          (2)数据类型:任何基本数据类型(如int、Boolean)或任何引用数据类型;

          (3)属性名:符合命名规则和规范即可;

        Demo:

    1 public class Person {
    2    private int age;   //声明private变量 age
    3    public String name = "Lila";  //声明public变量name    
    4 }

    二、变量的分类:成员变量与局部变量

      方式一:按照数据类型

      

      方式二:按照在类中声明的位置

      (1)在方法体外,类体内声明的变量称为成员变量;

      (2)在方法体内部声明的变量称为局部变量。

         

                

         注意:二者在初始化值方面的异同:

          同:都有生命周期。

          异:局部变量除形参外,均需要显式初始化。      

    三、成员变量与局部变量的异同

      1、相同点

        (1)定义变量的格式:数据类型  变量名 = 变量值

        (2)先声明,后使用

        (3)变量都有其对应的作用域 

      2、不同点

        (1)在类中声明的位置不同

            成员变量:直接定义在类的一对{}内;

            局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量;

        (2)关于权限修饰符的不同

            成员变量:可以在声明属性时,指明其权限,使用权限修饰符。(常用的权限修饰符:private、public、缺省、protected )

            局部变量:不可以使用权限修饰符,唯一能加的是 final;

        (3)默认值不一样

            成员变量:如果没有赋值,会有默认值(见默认初始化值图);

            局部变量:没有默认值,必须先定义,显式赋值之后,才能使用;但是形参在调用的时候赋值即可;

        (4)在内存中加载的位置不同

              成员变量:直接加载到堆空间中(非static)

            局部变量:加载到栈空间;

        (5)作用范围不一样

              成员变量:整个类都可以使用;

            局部变量:只有在声明的方法中才可以使用;

        (6)声明周期不一样

            成员变量:随着对象创建而产生,随着对象被垃圾回收而消失;

            局部变量:随着方法进栈而产生,随着方法出栈而消失;

          

    四、成员变量与局部变量的内存位置  

         

    五、对象属性的默认初始化赋值

      当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。

      除了基本数据类型之外的变量类型都是引用类型。

      

  • 相关阅读:
    WPF概述(硬件加速及分辨率无关性)
    创建自己的Code Snippet(代码模板)
    [LeetCode]46. Restore IP Addresses复原IP地址
    [LeetCode]45. Reverse Words in a String按单词翻转字符串
    [LeetCode]44. Implement strStr()实现strStr()函数
    [LeetCode]43. Integer to Roman整数转罗马数字
    [LeetCode]42. Roman to Integer罗马数字转整数
    [LeetCode]41. String to Integer(atoi)字符串转整数
    [LeetCode]40. Valid Palinadrome有效回文串
    [LeetCode]39. Longest Valid Parentheses最长有效括号对
  • 原文地址:https://www.cnblogs.com/niujifei/p/13662461.html
Copyright © 2011-2022 走看看