Java 类一口气给你讲完!(✿◡‿◡)

news2024/12/27 15:04:46

Java 类实例

Java面向对象设计 - Java类实例

以下是创建类的实例的一般语法:

new <Class Constructor>;

new 运算符后面是对构造函数的调用。

new 运算符通过分配堆上的内存来创建类的实例。以下语句创建Dog类的实例:

new Dog();

Dog()是对Dog类的构造函数的调用。

当我们不向类添加构造函数时,Java编译器为我们添加一个。

Java编译器添加的构造函数称为默认构造函数。默认构造函数不接受参数。

类的构造函数的名称与类名称相同。

new运算符为类的每个实例字段分配内存。类静态变量在创建类的实例时不会分配内存。

要访问类的实例的实例变量,我们必须有它的引用。

类的名称在Java中定义了一个新的引用类型。特定引用类型的变量可以存储相同引用类型的实例的引用。

声明一个引用变量,它将存储Dog类的实例的引用。

Dog anInstance;

Dog是类名,它也是一个引用类型,并且 anInstance 是该类型的变量。

anInstance是Dog类型的引用变量。anInstance变量可用于存储Dog类的实例的引用。

new运算符为类的新实例分配内存,并返回对该实例的引用。

我们需要将由新运算符返回的引用存储在引用变量中。

anInstance = new Dog();

null引用类型

我们可以为任何引用类型的变量分配一个空值。空值意味着引用变量是指没有对象。

Dog  obj  = null;  // obj  is not  referring to any  object
obj  = new Dog();  // Now, obj  is referring to a  valid Dog  object

您可以使用一个空文字与比较运算符来检查是否相等和不等。

if  (obj == null)  {
    //obj is null
}

if  (obj !=  null)  {
    //obj is not null
}

Java不会混合引用类型和原始类型。我们不能给一个原始类型变量赋null。


 

访问类的字段的点表示法

点符号用于引用实例变量。

点符号语法的一般形式是

<Reference Variable Name>.<Instance Variable Name>

obj.name引用obj引用变量引用的实例的名称实例变量。

要为名称实例变量分配值,请使用

obj.name = "Rectangle";

以下语句将name实例变量的值分配给String变量aName:

String aName = obj.name;

要引用类变量,请使用类的名称。

ClassName.ClassVariableName

例如,我们可以使用Dog.count来引用Dog类的计数类变量。

向计数类变量分配新值

Dog.count  = 1;

要将count类变量的值读取到变量中

long count = Dog.count;

以下代码显示如何使用类字段

class Dog {
  static int count = 0;
  String name;
  String gender;
}

public class Main {
  public static void main(String[] args) {
    Dog obj = new Dog();

    // Increase count by one
    Dog.count++;

    obj.name = "Java";
    obj.gender = "Male";

    obj.name = "XML";

    String changedName = obj.name;
  }
}

字段的默认初始化

类的所有字段(静态以及非静态)都将初始化为默认值。

字段的默认值取决于其数据类型。

数字字段(字节,短,char,int,long,float和double)初始化为零。布尔字段初始化为false。引用类型字段初始化为null。

下面的代码演示了字段的默认初始化。

public class Main {
  byte b;
  short s;
  int i;
  long l;
  float f;
  double d;
  boolean bool;
  String str;

  public static void main(String[] args) {
    Main obj = new Main();


    System.out.println("byte is initialized to " + obj.l);
    System.out.println("short is initialized to " + obj.s);
    System.out.println("int is initialized to " + obj.i);
    System.out.println("long is initialized to " + obj.l);
    System.out.println("float is initialized to " + obj.f);
    System.out.println("double is initialized to " + obj.d);
    System.out.println("boolean is initialized to " + obj.bool);
    System.out.println("String is initialized to " + obj.str);
  }
}

上面的代码生成以下结果。

Java 访问级别 

Java面向对象设计 - Java访问级别

类简单名称是 class 关键字和 {)之间的名称。

当我们通过简单的名称引用一个类时,编译器在引用类所在的同一个包中查找该类声明。

我们可以使用全名来引用一个类如下。

com.w3cschool.Dog aDog;

指定类的访问级别的一般语法是

<access level modifier>class <class name> {
    // Body of the class
}

类声明中<access level modifier>只有两个有效值:

  • no value
  • public

没有值被称为包级别访问。具有包级别访问的类只能在声明它的包中访问。

具有公共访问级别修改器的类可以从应用程序中的任何包访问。

package  com.w3cschool;

public class Dog  {

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTT:Point Tree Transformer for Point Cloud Registration 论文解读

目录 一、导言 二、相关工作 1、基于Transformer的点云配准 2、针对点云的局部注意力 三、PTT 1、KPconv提取特征 2、Tree Transformer Encoder 3、Decoder 4、估计姿态 5、损失函数 四、实验 1、对比不同Backbone 2、运行时间对比 3、对比不同PTT方法下RR指标的…

[机器学习]决策树

1 决策树简介 2 信息熵 3 ID3决策树 3.1 决策树构建流程 3.2 决策树案例 4 C4.5决策树 5 CART决策树&#xff08;分类&回归&#xff09; 6 泰坦尼克号生存预测案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import …

starUML使用说明文档[简单易懂/清晰明了]||好上手

1. 安装 StarUML 首先&#xff0c;您需要从 StarUML 官方网站&#xff08;http://staruml.io/&#xff09;下载最新版本的 StarUML 安装包。然后&#xff0c;按照提示进行安装。&#xff08;联想可以从软件管家里下载&#xff09; 2. 打开 StarUML 安装完成后&#xff0c;双击桌…

mac上Charles怎么配置,可以抓取浏览器/IDEA的接口

一、抓取浏览器接口 1、下载安装Charles后&#xff0c;按下图操作安装证书&#xff0c;mac撒好难过要把证书调整为可信任 2、打开macOS代理 方式一&#xff1a;指点开启这里 方式二&#xff1a;进入代理配置中开启&#xff0c;结果和方式一一样的 3、这时就可以抓取到浏览器…

高职院校人工智能技术和无人机技术实训室建设方案

一、方案背景与需求分析 1.1 人工智能与无人机技术发展概况 人工智能&#xff08;AI&#xff09;和无人机技术作为当今科技领域的两大热点&#xff0c;正以前所未有的速度发展和渗透到各行各业中。根据国际数据公司(IDC)的报告&#xff0c;全球人工智能市场规模预计将在2024年…

Oracle按照某一字段值排序并显示,相同的显示序号

Oracle按照某一字段值排序并显示,相同的显示序号 最近的工作遇到对于相同的字段,按照序号去显示值,并对相同的值进行排序 实验了半天,感觉满意的答案,分享给大家 第一种: ROW_NUMBER 语法: ROW_NUMBER() OVER (ORDER BY your_column) AS sequence_number 说明: 根据your_column…

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多&#xff0c;之前介绍了一个稍微新颖的 Prophe…

55 mysql 的登录认证流程

前言 这里我们来看一下 mysql 的认证的流程 我们这里仅仅看 我们最常见的一个 认证的处理流程 我们经常会登录的时候 碰到各种异常信息 认证失败的大体流程 大概的流程是这样 客户端和服务器建立连接之后, 服务器向客户端发送 salt 然后 客户端根据 salt 将客户端传入的…

MySQL权限控制(DCL)

我的mysql里面的一些数据库和一些表 基本语法 1.查询权限 show grants for 用户名主机名;例子1&#xff1a;查询权限 show grants for heima%;2.授予权限 grant 权限列表 on 数据库名.表名 to 用户名主机名;例子2&#xff1a; 授予权限 grant all on itcast.* to heima%;…

<<编码>>第 12 章 二进制加法器--二进制加法器 示例电路

info::操作说明 鼠标单击逻辑输入切换 0|1 状态 另: 因节点较多, 为避免过多连线, 此处采用标签虚拟连接方式, 相同的标识符表示连接在一起 关于标签虚拟连接的介绍见该链接: https://book.xiaogd.net/usage-of-circuitjs/circuitjs-label-simplify-circuit.html primary::在线…

《订单来了2024中秋预订趋势报告》发布:截至9月13日,商家中秋预订率上涨42.73%,山西文化巡礼成顶流

# 截至9月13日&#xff0c;订单来了酒店民宿已突破16万&#xff0c;商家中秋假期平均预订率较9月8日上涨42.73%。 对比6天前&#xff0c;酒店商家中秋平均预订率增长38.85%&#xff0c;民宿商家增长38.10%。 1%的酒店民宿达成「连续3天满房」成就&#xff0c;4%商家预订率超…

terminator-gnome

gnome import os#启动节点指令变量 stere"ros2 launch stereo_c start.py" utils"ros2 launch task utils.launch.py" #tab标题 stere_title"stere_driver" utils_title"utils"#一个终端界面打开5个tab cmd1f"gnome-terminal --…

嵌入式软件黑盒测试技术与案例分析培训

黑盒测试&#xff0c;也称为基于需求的测试&#xff0c;是目前嵌入式软件领域普遍开展的一种测试过程。目前&#xff0c;随着人们对软件质量要求的不断提升&#xff0c;行业对软件测试和验证的要求也在不断提高&#xff0c;对测试的充分性和准确性要求越来越苛刻。当前行业内&a…

工作流技术(WorkFlow)

什么是工作流 1.使用编程语言完成一套固定的审批流程 例如请假审批流程 订单配送流程 入职&#xff0c;辞职审批流程 2.使用场景 业务类&#xff1a;合同审批流程、订单处理流程、出入库审批流程等。 行政类&#xff1a;请假流程、出差流程、用车流程、办公用品申请流程…

代理IP设置后IP不变?可能的原因及解决方法

在使用代理IP时&#xff0c;有时会遇到代理设置后IP地址却没有变化的情况。这种问题可能会让人感到困惑&#xff0c;但其实背后有多种原因。本文将详细探讨这些原因&#xff0c;并提供相应的解决方法&#xff0c;帮助你顺利解决问题。 可能的原因 代理IP设置后IP地址不变的原…

智慧人居视音频解决方案探究和技术实现

智慧人居技术背景 智慧人居是一种利用先进技术和智能化系统&#xff0c;旨在提升居住环境的舒适性、便捷性和安全性的新型居住模式。随着物联网、大数据、人工智能等技术的不断发展&#xff0c;智慧人居正朝着更加智能化、个性化、集成化的方向发展。 智慧人居通过集成各种智…

【数据结构与算法 | 灵神题单 | 合并链表篇】力扣2, 21, 445, 2816

1. 力扣2&#xff1a;两数相加 1.1 题目&#xff1a; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可…

房产销售系统:SpringBoot技术应用案例

第二章关键技术的研究 2.1相关技术 房产销售系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言&#xff0c;易于学习&#xff0c;实用且面向用户。全球超过35&#xff05;的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统&#xff0c;因为它的…

Blender/3ds Max/C4D哪个软件好?

在3D建模和动画制作领域&#xff0c;Blender、3ds Max和Cinema 4D&#xff08;C4D&#xff09;都是备受赞誉的软件。每个软件都有其独特的优势和特点&#xff0c;选择哪个软件取决于用户的具体需求和个人偏好。今天&#xff0c;成都渲染101云渲染就来分析一些这三款软件的情况&…

滑动窗口算法—最小覆盖子串

题目 ”最小覆盖子串“问题&#xff0c;难度为Hard&#xff0c;题目如下&#xff1a; 给你两个字符串 S 和 T&#xff0c;请你在 S 中找到包含 T 中全部字母的最短子串。如果 S 中没有这样一个子串&#xff0c;则算法返回空串&#xff0c;如果存在这样一个子串&#xff0c;则可…