首页 > 编程语言 >Java 类的成员——成员变量

Java 类的成员——成员变量

时间:2023-04-19 10:57:27浏览次数:40  
标签:初始化 修饰符 Java 变量 成员 局部变量 public

如何声明成员变量

语法格式:

[修饰符1] class 类名{
    [修饰符2] 数据类型 成员变量名 [= 初始化值]; 
}

说明:

–           位置要求:必须在类中,方法外

–           修饰符2(暂不考虑)

  • 常用的权限修饰符有:private、缺省、protected、public
  • 其他修饰符:static、final

–           数据类型

  • 任何基本数据类型(如int、Boolean) 或 任何引用数据类型。

–           成员变量名

  • 属于标识符,符合命名规则和规范即可。

–           初始化值

  • 根据情况,可以显式赋值;也可以不赋值,使用默认值

示例:

public class Person{
    private int age;             //声明private变量 age
    public String name = “Lila”;    //声明public变量 name
}

成员变量 vs 局部变量

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

在方法体外,类体内声明的变量称为成员变量。

在方法体内部等位置声明的变量称为局部变量。

 

成员变量 与 局部变量 的对比

相同点:   

–           变量声明的格式相同: 数据类型 变量名 = 初始化值

–           变量必须先声明、后初始化、再使用。

–           变量都有其对应的作用域。只在其作用域内是有效的

不同点:

1、声明位置和方式 (1)实例变量:在类中方法外 (2)局部变量:在方法体{}中或方法的形参列表、代码块中

2、在内存中存储的位置不同 (1)实例变量:堆 (2)局部变量:栈

3、生命周期 (1)实例变量:和对象的生命周期一样,随着对象的创建而存在,随着对象被GC回收而消亡,  而且每一个对象的实例变量是独立的。 (2)局部变量:和方法调用的生命周期一样,每一次方法被调用而在存在,随着方法执行的结束而消亡,  而且每一次方法调用都是独立。

4、作用域 (1)实例变量:通过对象就可以使用,本类中直接调用,其他类中“对象.实例变量” (2)局部变量:出了作用域就不能使用

5、修饰符(后面来讲) (1)实例变量:public,protected,private,final,volatile,transient等 (2)局部变量:final

6、默认值 (1)实例变量:有默认值 (2)局部变量:没有,必须手动初始化。其中的形参比较特殊,靠实参给它初始化。

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

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

4、举例

class Person {//人类
    //1.属性
    String name;//姓名
    int age = 1;//年龄
    boolean isMale;//是否是男性

    public void show(String nation) {
        //nation:局部变量
        String color;//color:局部变量
        color = "yellow";
    }
}

测试类

//测试类
class PersonTest {
    public static void main(String[] args) {
        Person p = new Person();
        p.show("CHN");
    }

标签:初始化,修饰符,Java,变量,成员,局部变量,public
From: https://www.cnblogs.com/wdh01/p/17299894.html

相关文章

  • 重学Java设计模式-行为型模式-命令模式
    重学Java设计模式-行为型模式-命令模式内容摘自:https://bugstack.cn/md/develop/design-pattern/2020-06-21-重学Java设计模式《实战命令模式》.html#重学-java-设计模式-实战命令模式「模拟高档餐厅八大菜系-小二点单厨师烹饪场景」命令模式介绍图片来自:https://refactori......
  • 7.Java 网络编程之 Socket
    Java网络编程之Socket一、课程目标网络模型TCP协议与UDP协议区别Http协议底层实现原理。二、什么是网络模型网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然......
  • [nacos]JAR启动并加载/解析Nacos yml格式的配置文件时,报“java.nio.charset.Malformed
    1问题描述原因1:字符集不匹配nacos中配置文件的字符集为A,应用程序的读取配置文件时使用了字符集B,导致使用字符集B解码文件二进制流时字符解码失败。一般问题出在中文注释上原因2:(yml文件)配置格式有误2解决思路2.1原因1:字符集不匹配时方法[1]删除nacos配置文件中......
  • java基础数据类型
    这里整理java基础数据类型学习时几个需要注意的地方,防止自己使用错误,走错路...整数//整数intnum1=10;bytenum2=20;shortnum3=30;longnum4=30L;//long类型要在数字后面加个L//整数拓展进制:二进制0b十进制八进......
  • Java的对象克隆
    本节我们会讨论Cloneable接口,这个接口指示一个类提供了一个安全的clone()方法。Object类提供的clone()方法是“浅拷贝”,并没有克隆对象中引用的其他对象,原对象和克隆的对象仍然会共享一些信息。深拷贝指的是:在对象中存在其他对象的引用的情况下,会同时克隆对象中引用的其......
  • Java-Day-12( 类变量 + 类方法 + main 方法 + 代码块 + 单例设计模式 + final 关键字 )
    Java-Day-12类变量定义一个变量count,是一个类变量(静态变量)staticclassPerson{privateStringname;// 该静态变量static最大的特点就是会被Person所有的对象实例共享publicstaticintcount=0;publicPerson(Stringname){this.na......
  • 每日八股文之Java
    1、请你说说多线程得分点:线程和进程的关系、为什么使用多线程进程是操作系统资源调度的基本单位,线程是处理器任务调度和执行的基本单位,一个进程可以创建多个线程,每个线程有自己独立的程序计数器,本地方法栈和虚拟机栈,线程之间共享进程的堆和方法区。线程之间是通过时间片算法......
  • Java包
    包包是一组类和接口的集合。包的引入,实现了封装特性。同一个包中不允许有同名的类和接口,不同的包中允许同名的类和接口。包的引入,解决了类名的冲突问题。包本身也是分级的,包中还可以有子包。Java的包可以用文件系统来存放,也可以存放在数据库中。在Windows中,包是以文件系统来......
  • java学习日记20230414-HashSet源码
    HashSetHashSet底层是HashMap添加一个元素时,先得到Hash值,会转化成索引值;找到存储数据表table,看这个索引位置是否存放元素;如果没有直接加入如果有,调用equals比较,如果相同放弃添加,如果不同,则添加到最后在java8中,如果一条链表的元素个数到达TREEIFY_THRESHOLD(默认是8)(table表......
  • JavaScript程序与设计入门到入土
    4.JavaScript代码的书写位置和css一样,我们的js也可以有多种方式书写在页面上让其生效js也有多种方式书写,分为行内式,内嵌式,外链式4-1行内式JS代码(不推荐)写在标签上的js代码需要依靠事件(行为)来触发<!--写在a标签的href属性上--><ahref="javascript:alert('我是......