捡起Java——第二天

Java对象和类详解

Java的基本概念除了上篇文章所说的内容,还包括:

  • 多态
  • 继承
  • 封装
  • 抽象
  • 重载

Java中的类和变量

但是最基础的还是要从类和对象开始入手。什么是类?什么是对象?接下来我们就进行一个详述。

首先是他们的概念:

        对象是类的一个实例,具有状态和行为;而类是一个模板,定义状态和行为。

如果还不能理解,我们举个例子:

        如果把狗这种动物当做一个类,那么金毛就是狗的一个实例化对象,边牧也是狗的一个实例化对象……这就是我对对象和类的理解。

那么如何理解对象的行为和状态呢?

        还是以狗举例,比如我们在类——狗里面定义吃东西,睡觉,握手这三个行为以及年龄,性别这两个状态,那么我们实例化对象金毛的时候,其本身就会包含属性年龄和性别以及方法吃东西、睡觉和握手。

一个类可以包含的变量类型:

  • 局部变量:在方法、构造方法或者语句块中定义的变量叫做局部变量。变量的声明和初始化都是在方法中,如果方法调用结束,那么变量也自动进行销毁。
  • 成员变量:成员变量定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中的方法、构造方法和特定类的语句块进行访问。
  • 类变量:类变量也声明在类中,方法体之外。但是必须声明为static类型。

一个类中也可以包含多种方法。

构造方法

每个类都存在构造方法, 如果没有显示地为类定义构造方法,Java编译器会自动为该类提供一个默认的构造方法。在创建类的时候,至少要调用一个构造方法,构造方法必须和类同名,一个类可以具有多个构造方法。

创建对象

创建对象需要三个步骤:

  1. 声明:声明一个对象,包括对象名称和对象类型。
  2. 实例化:使用关键词new创建对象。
  3. 初始化:使用new创建对象时,会调用构造方法初始化对象。

访问实例变量和方法

/*实例化对象*/
Object referenceVariable = new Constructor();
/*访问类中的变量*/
referenceVariable.variableName;
/*访问类中的方法*/
referenceVariable.methodName();

源文件声明规则

在一个源文件中可以定义多个类,还存在import语句和package语句。

需要注意的规则:
  • 一个源文件只能有一个public类
  • 一个源文件可以有多个非public类
  • 源文件的名称应该和public类的名称保持一致。
  • 如果一个类定义在某个包中,那么这个package应该在源文件的首行。
  • 如果在源文件包含import语句,那么应该放在package语句和类定义词之间。如果没有package语句,那么import语句应该放在源文件最前端。
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

Java包

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

import语句

在Java中,如果给出一个完整的限定名,包含包名、类名,那么Java编译器就能很容易定位到源代码或者类。import语句就是用来提供合适路径使得编译器快速找到某个类。

Java基本的数据类型

Java中存在两大数据类型:

  • 内置数据类型
  • 引用数据类型

下面分别介绍两种数据类型:

内置数据类型

Java提供了8种基本类型,分别是六种数字类型(四种整数型和两种浮点型),一种字符型,还有一种布尔型。

Byte:数据类型是8位,有符号,通过二进制补码进行表示的整数,范围是从-128~127,其默认值为0。同时byte的大小是int类型的四分之一。

Short:short数据类型是16位,有符号,通过二进制补码进行表示的整数,范围是-32768~32767,其默认值为0。同时short的大小是int的二分之一。

int:数据类型是32位,有符号,通过二进制补码进行表示的整数,范围是-2^31~2^31-1,一般的整型变量是int类型,默认值为0。

long:数据类型是64位,有符号,通过二进制补码进行表示的整数,范围是-2^63~2^63-1,默认值是0L。

Float:数据类型是单精度、32位的浮点数;在用于存储大型数组的时候可以节省空间,默认值为0.0f;浮点数不能用来表示精确的值。

double:数据类型是双精度、64位的浮点数;浮点数默认类型是double;不能精确表示值;默认值为0.0d。

Boolean:表示一位的信息,只存在true和false两个值,用来作为一种标志,默认值为false。

char:是单一的16位的unicode字符,最小值是\u0000,最大值是\uffff。char类型可以存储任意字符。

注:常用的用于字符串的存储类型还有String,可以用来存储字符串)。

引用类型

引用类型指向一个对象,那么指向对象的变量就是引用变量。引用变量一旦申明,就不能进行改变了。对象、数组都是引用数据类型,默认值都是null。引用变量可以用来引用任何与之兼容的类型。

Java常量

常量再程序运行时不能被修改,在Java中通过使用final关键字进行修饰。

类型转换

自动类型转换

整型、常量、字符型数据可以进行混合运算,在运算过程中,不同类型的数据先转化为同一类型,之后再进行运算。

转换过程从低到高:byte——>short——>char——>int——>long——>float——>double

类型转换必须满足的规则:

  • 不能对布尔类型数据进行转换
  • 不能将对象类型转换为不相关类的对象。
  • 在将大容量的类型转换为小容量类型时使用强制类型转换。
  • 在转换过程中会可能导致溢出或者损失精度。
  • 浮点数到整数通过的是损失小数,并非四舍五入。

自动类型转换:

转换前的数据类型低于转换后的数据类型。

强制类型转换:

转换的数据类型必须兼容

隐含强制类型转换:

  • 整数的默认类型是int
  • 小数默认类型是double,定义float类型必须在数字后面跟上F或者f。

Java变量类型

基本格式:type 变量 = value或者type 变量1,变量2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值