1.2类的声明

声明

本文章是本人在bilibili视频的学习笔记,视频地址清华大学java语言49讲(郑莉教授)


在程序中,对象是通过一种数据结构类型来描述的,这种抽象数据类型称为类(class)

抽象数据类型:类

(C语言)
通讯录:用一个结构体来保存 QQ,住址,电话号码,等不通的数据类型

结构体不能进行整体操作。
C++的结构体是一种特殊的类,C语言结构体只能一个一个的数据成员拿出来操作

C语言中定义了结构体,不能算作定义了新的数据类型(C语言中称为:自定义数据类型)

新的数据类型应该包括:
1.数据的存储结构
2.在数据上面,允许的计算

Java中定义了一个类,就是定义了一种数据类型,以及在类型上的操作
(数据类型就是对一类对象的描述)

类是构造对象的模板,对象是类的实例
(使用是使用具体的对象,而不是类型名(数据类型))

int a; //我需要使用a而不是int

类声明形式

[public] [abstract] [final] class 类名称
[extends 父类名称]
[implement 接口名称列表]
{
    变量成员声明及初始化;
   方法声明及方法体
}

[public]
(类的访问控制属性,规定类在什么范围之内可以使用) C语言:作用域,可见性,生存期(函数之间数据共享)
[abstract]
指明此类为抽象类 抽象类定义一个不能够具体化的概念 整个类家族统一顶层的定义 更多是为了设计的目的而存在(不能产生实例)
[final]
指明此类为终结类 Java中用来定义常量

(C,C++用const定义常量)

类的成员也可以用final,指的是常成员,定义final的类可以被重用,但不希望被改变
(不要继承过去修改使用,原样使用)

[extends]
如果声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后

继承即是设计的重用,又是代码的重用

[implement]
如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后

接口好像是一种完全抽象的类
万能遥控器好像是一个接口
不同设备启动的步骤不一样,而万能遥控器都可

不同的设备都实现了万能遥控器(的信号的接口)
接口规定了功能(启动,关闭)

不同的设备都可实现(启动,关闭) 这个接口,但需要描述具体实现方式

(继承即是设计的重用,又是代码的重用)
(实现一个接口纯粹是设计的重用)
只设计我需要哪些功能,只重用

引用

定义一个引用类型的变量(无指向的空引用)
2.构造一个对象
3.将对象的引用放到此变量

生成引用实例的格式
new <类名>()

例如: aclock = new Clock()

//定义了一个指向钟表类的引用,但指向哪个对象呢?不知道,还是一个空引用
//new 构造一个Clock类型的新对象
(Clock后面的括号为了初始化,钟表出厂可以预设定时间)
( int a= 0; int a(0); C中初始化变量)

new很像C中的内存分配
使用new首地址不用关心,分配几个字节也不用关心,自动判断对象需要多少个字节,恰当分配字节数
你不用去关心真正的地址,引用相当于存储地址,但不是真正的地址(和指针有差别,因为java抽象程度更高)

C语言内存分配,告诉分配几个字节,将真实首地址传过来

数值类型,自动初始化为0
引用类型,自动初始化为null

自动装箱拆箱

Java5新特性,基本数据类型与对应的类对象之间,进行移动的拆装和装箱(对象取数/往对象装数)

每一个数据类型都对应一个类
int 类中有方法
double

自动装箱
Java5之前 Integer i= new Integer(2); Java5 Integer i= 3;

目的:整数2装到Integer对象i中
//构造一个新对象,用2作为参数

//java5后自动构造一个新对象(如右边有值)

自动拆箱
目的:将Integer类型对象的整数取出 Java5之前 int j=i.intValue();

//用interValue将对象的整数取出来
//赋值给基本类型的变量

为什么要有基本数据类型的对象?
后面会讲到java的集合框架,java专门有类去存放集合类型的数据,比如存放一个线性表,存放一个矩阵

集合类型的数据中,每一个具体的数据,每一个个体,必须是对象,不能是基本类型的数据

Java5之后的拆装箱(取/赋值),自动解析/生成对象。(因为底层机制是存放对象的)

数据成员

表示java类的状态 此对象区分于彼对象的基本依据(特征)

每个学生都有学号姓名,但又基本不同,他们是不同的对象

在一个类中,成员变量的变量名是唯一的
数据成员可以是java中的任意数据类型,基本类型,类类型,接口,数组

定义形式:必须有类型名和变量名
//前面可有修饰的关键字,表示访问控制属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值