Java中类的成员之一:属性(field)

简介: Java中类的成员之一:属性(field)

@[toc]

类的成员之一:属性(field)


语法格式

在这里插入图片描述


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

在这里插入图片描述


成员变量(属性)和局部变量的区别

在这里插入图片描述


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

  • 当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型,如上面的Person及前面讲过的数组。

在这里插入图片描述

属性(成员变量) VS 局部变量

1.相同点

​ 1.1定义变量化的格式:数据格式 变量名 = 变量值

​ 1.2先声明,后使用

​ 1.3变量都有其对应的作用域


2.不同点

​ 2.1在类中声明的位置不同

​ 属性:直接定义在类的一对{}内

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

​ 2.2关于权限修饰符的不同

​ 属性:可以在声明属性时,指明其权限,使用权限修饰符

​ 常用的权限修饰符:private、public、缺省、proteced---->封装性

​ (早期声明属性,用缺省就行了)

​ 局部变量:不可以使用权限修饰符

​ 2.3默认初始化值的情况

​ 属性:类的属性根据其类型都有默认初始化值

​ 整型(byte、short、int、long),0

​ 浮点型(float、double),0.0

​ 字符型(char),0(或’\u000‘)

​ 布尔(boolean),false

​ 引用数据类型(类、接口、数组),null

​ 局部变量:没有默认初始化值

​ 意味在调用局部变量之前一定要显式赋值

​ 特别的,形参在调用时,赋值即可

​ 2.4在内存中加载的位置

​ 属性:加载到堆空间(非static)

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

举例代码:

public class UserTest {
    public static void main(String[] args) {
        User u1=new User();
        //2.3默认初始化值的情况
        System.out.println(u1.name);//null
        System.out.println(u1.age);//0
        System.out.println(u1.isMale);//false
        //特别的,形参在调用时,赋值即可
        u1.talk("汉语");
    }
}
class User{
    //属性(成员变量)
    String name;
    int age;
    boolean isMale;

    public void talk(String language){//language:形参,局部变量
        System.out.println("我们使用"+language+"进行交流");
    }

    public void eat(){
        String food="烙饼";//局部变量
        System.out.println("北方人喜欢吃:"+food);
    }
}
    }

    public void eat(){
        String food="烙饼";//局部变量
        System.out.println("北方人喜欢吃:"+food);
    }
}

关于Java方法中属性赋值的先后顺序

  • 赋值的位置: ① 默认初始化 ② 显式初始化 ③ 构造器中初始化 ④ 通过“对象.属性“或“对象.方法”的方式赋值
  • 先后顺序:① - ② - ③ - ④
目录
相关文章
|
1天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
21天前
|
JSON 前端开发 JavaScript
Java属性为什么不能是is开头的boolean
在Java实体类中,阿里规约要求boolean属性不应以is开头。文章通过实际案例分析了isUpdate字段在JSON序列化过程中变为update的问题,并提供了自定义get方法或使用@JSONField注解两种解决方案,建议遵循规约避免此类问题。
Java属性为什么不能是is开头的boolean
|
26天前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
26 3
|
2月前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
38 2
|
2月前
|
Java
Java 集合存在相同属性,其他元素累加
Java 集合存在相同属性,其他元素累加
38 0
|
3月前
|
Java 编译器 测试技术
|
4月前
|
Java 调度 开发者
Java 神秘新成员 —— 虚拟线程究竟是什么?它又能解开哪些编程痛点之谜?
【8月更文挑战第23天】Java虚拟线程是一种轻量级执行线程,由Java运行时管理,相较于传统操作系统线程,其创建和管理成本更低。基于用户模式线程概念,Java应用程序无需依赖OS即可实现高度并发。虚拟线程数量可远超传统线程,有效提升多核处理器利用率和并发性能。它解决了传统Java线程模型中创建成本高、调度开销大及I/O阻塞等问题,极大提高了程序的并发性和响应速度。
44 1
|
5月前
|
Java 程序员
【Java探索之旅】继承概念_语法_父类的成员访问
【Java探索之旅】继承概念_语法_父类的成员访问
63 10
|
6月前
|
存储 缓存 Java
探索 Java 中 `Class.java` 的属性与方法
探索 Java 中 `Class.java` 的属性与方法
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have
### Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value; Field ‘id‘ doesn‘t have