Java对象、类、数据类型、变量类型

一、Java对象和类:

        对象是类的一个实例,有状态和行为。类是一个模版,描述一类对象的行为和状态。对象的状态就是属性,行为通过方法体现。方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

        一个类可以包含以下类型变量:局部变量——在方法、构造方法或者语句块中定义的变量被称为局部变量,变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁;成员变量——成员变量是定义在类中,方法体之外的变量,这种变量在创建对象的时候实例化,成员变量可以被类中方法、构造方法和特定类的语句块访问;类变量——类变量也声明在类中,方法体之外,但必须声明为 static 类型。

        每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。示例:

public class Puppy{

public Puppy(){

}

public Puppy(String name){

// 这个构造器仅有一个参数:name

}

}

        对象是根据类创建的,在Java中,使用关键字new来创建一个新的对象。创建一个对象需三步:一、声明:声明一个对象,包括对象名称和对象类型;二、实例化:使用关键字new来创建一个对象;三、初始化:使用new创建对象时,会调用构造方法初始化对象。示例:

public class Puppy{

public Puppy(String name){

//这个构造器仅有一个参数:name

System.out.println("company : " + name );

}

public static void main(String[] args){

// 下面的语句将创建一个Puppy对象

Puppy myPuppy = new Puppy( "JD" );

}

}

 访问实例变量和方法:

/* 实例化对象 */

Object referenceVariable = new Constructor();

/* 访问类中的变量 */

referenceVariable.variableName;

/* 访问类中的方法 */

referenceVariable.methodName();

源文件声明原则:

● 一个源文件中只能有一个 public 类;

● 一个源文件可以有多个非 public 类;

● 源文件的名称应该和 public 类的类名保持一致。

● 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。

● 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。

● import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

Java包主要用来对类和接口进行分类。

Import语句用来提供一个路径,使得编译器可以找到某个类。

二、Java基本数据类型:

Java两大数据类型:内置数据类型和引用数据类型。

4.1、内置数据类型:

Java语言提供了8种基本类型:6种数字类型(4个整数型、2个浮点型)、1种字符类型和1中布尔型。

1、byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7)最大值是 127(2^7-1);默认值是 0;byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

2、short:short 数据类型是 16 位、有符号的以二进制补码表示的整数最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;默认值是 0;

3、int:int 数据类型是32位、有符号的以二进制补码表示的整数;最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);一般地整型变量默认为 int 类型;默认值是 0 ;

4、long:long 数据类型是 64 位、有符号的以二进制补码表示的整数;最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1);默认值是 0L;

5、float:float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;float 在储存大型浮点数组的时候可节省内存空间;默认值是 0.0f;

6、double:double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;浮点数的默认类型为 double 类型;默认值是 0.0d;

7、boolean:boolean数据类型表示一位的信息;只有两个取值:true 和 false;默认值是 false;

8、char:char 类型是一个单一的 16 位 Unicode 字符;最小值是 \u0000(十进制等效值为 0);最大值是 \uffff(即为 65535);char 数据类型可以储存任何字符。

数据类型

默认值

byte

0

short

0

int

0

long

0L

float

0.0f

double

0.0d

char

'u0000'

String (or any object)

null

boolean

false

4.2、引用类型:

引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明,类型不能被改变。对象、数组都是引用数据类型;所有引用类型的默认值都是null。

4.3、Java常量:

常量在程序运行时是不能被修改的。在Java中使用final关键字来修饰常量。当使用字面量的时候,前缀0表示8进制;前缀0x表示16进制。

Java语言支持一些特殊的转义字符序列:

符号

字符含义

\n

换行 (0x0a)

\r

回车 (0x0d)

\f

换页符(0x0c)

\b

退格 (0x08)

\0

空字符 (0x0)

\s

空格 (0x20)

\t

制表符

\"

双引号

\'

单引号

\\

反斜杠

\ddd

八进制字符 (ddd)

\uxxxx

16进制Unicode字符 (xxxx)

整型、常量、字符型数据可以混合运算,在运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级:

数据类型转换规则:不能对boolean类型进行类型转换;不能把对象类型转换成不相关类的对象;容量大的类型转换为容量小的类型必须使用强制类型转换;转换过程中可能导致溢出或损失精度;浮点数到整数的转换是通过舍弃小数得到,不是四舍五入。

二、Java变量类型:

        在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式:type identifier [ = value][, identifier [= value] ...] ,其中:type --数据类型; identifier--是变量名,使用逗号“,”隔开。

Java语言支持的变量类型:局部变量、成员变量、静态变量、参数变量。

5.1、局部变量:

局部变量声明在方法、构造方法或者语句块中,执行完后,变量将会被销毁。局部变量必须在使用前声明,并且不能被访问修饰符修饰。局部变量只在声明它的方法、构造方法或者语句块中可见,不能被其他方法或代码块访问。局部变量是在栈上分配的。局部变量被声明后,必须进行初始化,才可以使用。

5.2、成员变量:

成员变量声明在一个类中,但在方法、构造方法和语句块之外。当一个对象被实例化后,每个成员变量的值就跟着确定。成员变量在对象创建时创建,在对象被销毁时销毁。成员变量的值应该至少被一个方法、构造方法或语句块引用。成员变量可以声明在使用前或使用后。访问修饰符可以修饰成员变量。成员变量对于类中的方法、构造方法或者语句块是可见的。一般应将成员变量设为私有。成员变量具有默认值。成员变量可以直接用过变量名访问。

5.3、静态变量:

Java中的静态变量是指在类中定义的一个变量,它与类相关而不与实例相关,即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。静态变量在类加载时被创建,在整个程序运行期间都存在。

静态变量的定义方式是在类中使用static关键字修饰变量。静态变量的访问可以通过类名来访问也可通过实例名来访问。

静态变量的应用场景:存储全局状态或配置信息;计数器或同级信息;缓存数据或共享资源;工具类的常量或方法;单例模式中的实例变量。

5.4、参数变量:

参数变量是指在方法或构造函数中声明的变量,用于接收传递给方法或构造函数的值。参数变量只在方法或构造函数被调用时存在,并且只能在方法或构造函数内部使用。示例:

public class RunTest {
     public static void main(String[] args) {
        int a = 10, b = 20;
        swap(a, b); // 调用swap方法
        System.out.println("a = " + a + ", b = " + b); // 输出a和b的值
     }
     public static void swap(int x, int y) {
        int temp = x;
        x = y;
        y = temp;
     }
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客户端性能优化实践

背景 双十一大促时,客户客服那边反馈商品信息加载卡顿,在不断有订单咨询时,甚至出现了商品信息一直处于加载状态的情况,显然,在这种高峰期接待客户时,是没法进行正常的接待工作的。 起初,页面一…

【代码随想录】算法训练计划24

回溯模板: 1、77. 组合 题目: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 思路: 很经典的回溯,也是回溯中模板的经典应用,因而是回溯中的简单题…

观测云助力跨境电商大幅提高加载性能

话不多说,先上结果 什么是用户体验 用户体验基本包含访问网站的性能、可用性和正确性。通俗的讲,就是一把通过用户访问测量【设计者】意图的尺子。 用户体验的基本价值 如果正确实施了终端用户体验,可以第一时间发现,确认影响了…

python 对图像进行聚类分析

import cv2 import numpy as np from sklearn.cluster import KMeans import time# 中文路径读取 def cv_imread(filePath, cv2_falgcv2.COLOR_BGR2RGB): cv_img cv2.imdecode(np.fromfile(filePath, dtypenp.uint8), cv2_falg) return cv_img# 自定义装饰器计算时间 def…

【C++】泛型编程 ⑥ ( 类模板 | 类模板语法 | 代码示例 )

文章目录 一、类模板1、类模板引入2、声明类模板语法3、调用类模板语法 二、代码示例 - 类模板1、代码示例2、执行结果 一、类模板 1、类模板引入 类模板 与 函数模板 的 作用类似 , 当 多个类 功能相同 , 只是数据类型不同 , 此时可以 定义一个类模板 代替 定义多个类 ; 借助…

shopee跨境选品工具——知虾,助您精准选品和科学运营

在如今的电商时代,shopee跨境选品是每个卖家都面临的重要任务。而Shopee作为一家知名的跨境电商平台,为卖家提供了一系列有用的工具和功能来帮助他们进行精准选品和科学运营。其中,知虾作为Shopee的大数据采集及分析平台,为卖家提…

Java多线程下使用TransactionTemplate控制事务

简介 本文展示了在Java的多线程环境下使用Spring的TransactionTemplate控制事务的提交与回滚,当任何一个子线程出现异常时,所有子线程都将回滚 环境 JDK:1.8.0_211 SpringBoot:2.5.10 说明 本文通过同时写入用户(User)和用户详细…

链式队列的基本操作与实现(数据结构与算法)

链队列的表示与实现如下图&#xff1a; 代码如下&#xff1a; #include<iostream> using namespace std;#define MAXQSIZE 100 //最大队列长度 typedef int QElemType; //typedef struct Qnode {QElemType data;struct Qnode* next; }QNode, *QueuePtr; //队列结点类型…

Os-ByteSec

Os-ByteSec 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.144 端口扫描&#xff0c;开放了80、139、445、2525端口 二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.144/" -e *访问扫描出来的路径&#xff0c;没有发现…

电子电器架构 —— 车载网关边缘节点路由转发策略

电子电器架构 —— 车载网关边缘节点路由转发策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无…

Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic

目录 Bitmaps简介常用命令bitmaps与set比较 HyperLoglog简介命令 Geographic简介命令 Bitmaps 简介 位操作字符串。 现代计算机使用二进制&#xff08;位&#xff09;作为信息的基本单位&#xff0c;1个字节等于8位&#xff0c;例如“abc”字符串是有3个字节组成&#xff0c…

珠海希雷伺服全套(包含算法)方案

下载链接&#xff01;&#xff01;https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247555038&idx1&sn939a4ad71582abc1f9e93c4d5526fed9&chksmfcfb0409cb8c8d1f74ce7108e20b0310e7399775367a023638624357644dfa4ae435e41c8768&token207079769&l…