当前位置: 首页 > article >正文

JAVA2-类与对象编程(1)

该系列分享倾向于有c语言基础的学习,想学习的指路主页c语言专栏,接下来我们正式开始面向对象编程的分享学习。

软件应用:inteli IDEA2020.2

一.类与对象的定义

1) 类是抽象的,概念性的,代表一类事物,即数据类型.

2) 对象是具体的,实际性的,代表一个具体事物, 即实例.

3) 类是对象的模板,对象是类的一个个体,对应一个实例

二.属性/成员变量/字段

基本介绍 1) 从概念上看: 成员变量 = 属性 = field(字段) (即成员变量是用来表示属性的,下面分享统一叫属性)

属性可以是基本数据类型,也可以是引用类型(对象,数组)

在这里我们简单说一下java中的数据类型

一.基本数据类型

基本数据类型是 Java 语言中最基础的数据类型,它们存储的是实际的值,而不是指向对象的引用。这些数据类型在内存中直接存储数据,并且有固定的大小,存储在栈内存中。

  1. 整数类型

    • byte:字节型,占用 1 个字节(8 位),范围是 -128 到 127。常用于存储字节数据,例如文件操作或网络通信中的字节流。
    • short:短整型,占用 2 个字节(16 位),范围是 -32,768 到 32,767。在某些内存敏感的场景中使用,较少使用。
    • int:整型,占用 4 个字节(32 位),范围是 -2,147,483,648 到 2,147,483,647。是最常用的整数类型,用于存储一般的整数数据,如计数、索引等。
    • long:长整型,占用 8 个字节(64 位),范围是 -9,223,372,036,854,755,008,000,000,000,000,000,000 到 9,223,372,036,854,755,007,000,000,000,000,000,000。当需要存储较大的整数时使用,例如表示文件大小、时间戳等。
  2. 浮点类型

    • float:单精度浮点型,占用 4 个字节(32 位)。它可以表示带有小数部分的数据,但精度相对较低,在对精度要求不高的情况下使用,例如科学计算中的一些近似值。
    • double:双精度浮点型,占用 8 个字节(64 位)。它的精度比 float 高,是最常用的浮点数表示类型,用于存储需要较高精度的浮点数,如物理计算、金融计算等。
  3. 字符类型

    • char:字符型,占用 2 个字节(16 位),表示一个 Unicode 字符。可以存储单个字符,如字母、数字、符号等,使用单引号括起来,例如 'A''1''$'
  4. 布尔类型

    • boolean:布尔型,只有两个值,true 和 false。用于表示逻辑上的真或假,常用于条件判断和控制流程,例如 if 语句、while 语句等。

二、引用数据类型

引用数据类型存储的是对象的引用(地址),而不是对象本身。对象的数据存储在堆内存中,引用存储在栈内存中,通过引用可以找到对象在堆内存中的位置。

  1. 类(Class)

    • 自定义类:通过 class 关键字创建,例如 public class Person {... }。可以封装数据和行为,创建自定义的对象,例如 Person person = new Person();
    • 系统提供的类:如 StringDateArrayList 等。这些类是 Java 标准库提供的,可以直接使用,例如 String str = new String("Hello");
  2. 接口(Interface)

    • 接口是一种抽象类型,只包含方法签名,不包含方法体。接口可以被类实现,实现接口的类需要提供接口中所有方法的具体实现。例如 interface Drawable {... }class Circle implements Drawable {... }
  3. 数组(Array)

    • 存储同一种数据类型的元素的集合,可以是基本数据类型的数组,也可以是引用数据类型的数组。例如 int[] nums = new int[10]; 或 String[] names = new String[5];。数组的长度是固定的,创建后不能改变。
  4. 枚举(Enum)

    • 一种特殊的数据类型,用于定义一组常量。例如 enum Color { RED, GREEN, BLUE },可以使用 Color.RED 这样的方式来表示枚举值。
  5. 注解(Annotation)

    • 为程序元素(类、方法、字段等)添加元数据信息,用于编译时或运行时的处理。例如 @Override 是一个注解,用于表示方法重写。

我们对于java中的数据类型有所了解之后,相信大家也就明确上述属性的定义了。

属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)。

注意事项和细节说明

1) 属性的定义语法同变量,示例:访问修饰符 属性类型 属性名;

这里简单讲解一下访问修饰符的基本概念和访问权限

访问修饰符: 控制属性的访问范围 有四种访问修饰符 public, proctected, default, private

             访问权限    类   包  子类  其他包

        public     ∨   ∨    ∨     ∨          (对任何人都是可用的)

        protect    ∨   ∨   ∨     ×    (继承的类可以访问以及和private一样的权限)

        default    ∨   ∨   ×     ×    (包访问权限,即在整个包内均可被访问)

        private    ∨   ×   ×     ×    (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)

2) 属性的定义类型可以为任意类型,包含基本类型或引用类型

3) 属性如果不赋值,有默认值,规则和数组一致。

注意事项

举例:Person p1 = new Person();

person为p1的数据类型,p1为对象名(对象引用),new Person() 创建的对象空间(数据) 才是真正的对象

上述举例中的创建对象为直接创建,我们同样可以先声明再创建

Cat cat ; //声明对象

cat cat = new Cat(); //创建

如何访问属性?基本语法 对象名.属性名;

例如一个对象cat的属性--->cat.name ; cat.age; cat.color;

扩展:Java 内存存储的结构

1) 栈: 一般存放基本数据类型(局部变量)

2) 堆: 存放对象(Cat cat , 数组等)

3) 方法区:常量池(常量,比如字符串), 类加载信息

举例:

Person p = new Person();
p.name = “jack”;
p.age = 10;

1) 先加载person类信息(属性和方法信息, 只会加载一次)

2) 在堆中分配空间, 进行默认初始化(看规则)

3) 把地址赋给 p , p 就指向对象

4) 进行指定初始化, 比如 p.name =”jack” ;p.age = 10;

今日分享到此结束,我们明天再见~


http://www.kler.cn/a/488070.html

相关文章:

  • 直线拟合例子 ,岭回归拟合直线
  • Cloudflare通过代理服务器绕过 CORS 限制:原理、实现场景解析
  • 2025年美赛C题:奥运奖牌榜模型 解析及Python代码实现
  • 第24篇 基于ARM A9处理器用汇编语言实现中断<六>
  • PAT甲级-1020 Tree Traversals
  • 【Unity3D】《跳舞的线》游戏的方块单方向拉伸实现案例
  • vue如何实现动态路由?
  • 排序算法 C语言
  • macOS安装nvm
  • 【PPTist】查找替换、绘制文本框
  • 定位,用最通俗易懂的方法2:TDOA与对应的CRLB
  • 【Linux-多线程】-线程安全单例模式+可重入vs线程安全+死锁等
  • Clojure语言的多线程编程
  • Apache Hudi vs Delta Lake vs Apache Iceberg
  • Element UI与Element Plus:深度剖析
  • HarmonyOS 鸿蒙Next 预览pdf文件
  • 玩转多线程--入门
  • 两个关于 li bottom 的CSS 问题 笔记
  • flex(弹性)布局
  • Type-C单口便携显示器-LDR6021
  • 小白:react antd 搭建后台框架记录问题1
  • 训练和推理阶段验证集的精度不一致的原因分析
  • java 查询树结构数据,无限层级树结构通用方法
  • 【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
  • 年度技术突破奖|中兴微电子引领汽车芯片新变革
  • Vue2与Vue3在项目开发中的选择:深入探讨