当前课程知识点:Java程序设计 > 第二章 类与对象 > 2.2-1-类声明与对象创建 > 2.2-1-类声明与对象创建
大家好 欢迎回来继续学习
java语言程序设计
这一节我们来学习类的声明
和对象的创建
首先我们来看一下类与对象
他们之间是一种什么样的关系呢
实际上类是对一类对象
共同的属性和行为的一种抽象
它是一种抽象出来的数据类型
而对象呢就是类的具体的实例
首先呢我们来看看
怎么样从同类型对象中
抽象出共同属性 共同行为
来声明成一个类的形式
相当于说
定义一个新的数据类型
我们来看这个就是类声明的语法
这里呢有很多关键字
我们还没有讲到
大家看着可能也比较陌生
没有关系在这一章
我们还用不到这么多关键字
我只是在这里
给大家一个完整的语法形式
那么在后续章节中呢
这些关键字陆续我们都会学到的
我们看到在这个
方括号里面的关键字呢
是可选项 是可有可无的
所以我们可以看到class
这个关键字是必须的
它表示接下来
在后面定义的是一个类
声明的是一个类
然后是类名称
大括号里面呢我们叫它类体
类体里面呢就应该是
数据成员的声明和初始化
还有呢方法的声明
以及方法体的实现
刚才说了class表明
这是声明一个类
那么extends是什么意思呢
我们在前面一节说了
继承是面向对象方法的
一个基本特征
当我们要继承一个已有的类
形成新类的时候呢
我们就要用到
这个extends关键字
那么implements呢
是用来实现接口的
关于接口呢
我们也会在后续章节中
给大家介绍
现在大家可以先不必介意这些
学了后续章节
这一个内容也就理解了
public什么意思呢
表示这个类为共有类
在这一章的稍候的内容中呢
我会给大家介绍
类的访问控制属性
那么大家就理解了public
和不写public的类
他们有什么差别
abstract是抽象的意思
有abstract修饰的类
就是抽象类
这个也会在后面给大家介绍
final指的这个类为终结类
也就是这个类你要用就用
是不可以被继承的
那么这个在后面也会有详细的
给大家介绍也会有例题
现在呢大家只要
有一个概要性的了解就行了
接下来我们来看一个
钟表类的实例
我们需要定义一种新的类型
表示一种最基本的钟表
那么我们在这个类中呢
就定义了小时 分秒
三个变量成员
产生定义了setTime showTime
两个方法成员
这两个方法成员呢
就是表示了钟表的行为
这就是一个类的声明
我们看到方法的定义
整个是在类体里面的
好 通过例题呢
我们看到如何去声明一个类
那我们知道一个类
实际上它就是一种新的类型
一个程序员自定义的类型
那么我们声明完这个类以后
想要使用这个类里面
定义的数据成员
想要使用这些方法成员
所代表的功能或者行为
那么怎么用呢
比如说我们有了钟表类
我们怎么用呢
其实钟表类
就好比一个生产钟表的图纸
一个设计图纸
那我们总不能把这个设计图纸
挂在墙上让它走字吧
那我们怎么办呢
要用这种设计
去生产出一个真正的钟表来
它是一个实例
然后我们用这个真正的钟表实例
所以当我们要使用类里面
声明的这些数据
这些方法的时候呢
我们就必须去构造
这个类的对象
也就是这个类的实例
然后通过这个实例
来使用定义好的这些功能
现在呢我们来看一下
怎么样去构造一个类的实力对象
那我们知道当我们需要使用
基本类型的数据的时候
我们就只要定义这个类型
的变量就可以了
同时在你定义变量的时候
就分配内存空间了
你也可以初始化
然后你就可以使用了
但是构造一个对象的过程
远比这个要复杂
我们来看这个语法
首先呢先要定义一个引用变量名
比如说我们打算要去构造一个
clock钟表类的实例
那先准备好
一个钟表类的引用变量
比如这里叫做aclock
他只是一个引用名字
引用可以被认为是一个
其它的对象的别名
那么刚刚这样定义
一个引用变量以后
那么我们期望的钟表对象在哪呢
还没有呢还没生成对象呢
这个时候这个引用
只是一个空引用
然后接下来
我们要做的事情
就是创建对象
创建对象要用到这个new关键字
它是一种运算
实际上就是一个
动态内存分配的运算
我们来看这个例子
new后面clock一对圆括号
这个意思呢
就是分配新的内存空间
在运行时分配内存空间
用于存放一个
clock类型的对象
那么这个对象构造好以后
怎么初始化呢
这里没有指定初始化的参数
如果你需要对这个
对象初始化的话
应该在clock后面
对那一对圆括号里面
给出初始化参数
但是现在我还没有给大家讲
如何做初始化
所以现在还不能给初始化参数
只能空着 所以它的作用是
new的作用就是在内存中
为clock类型的对象分配内存空间
然后返回对象的引用
那么我们定义
一个引用变量的时候
如果你定义的时候
没有给它初始化
他默认就初始化为空引用了
定义完了以后
我们也可以像这样
用一个null一个空给它复制
把它制成空引用
当然在需要的时候呢
我们就会去真的构造对象
new一个新的对象出来
把引用给到一个引用变量
比如说给到aclock
这个引用变量
好 这一节呢
我们学习了怎么样声明一个类
怎么样构造这个类的实例对象
接下来下一节呢
我们就要学习如何在类里面
声明数据成员
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-3.3-终结类与终结方法
--第三章 类的重用--3.3-终结类与终结方法
-3.4-抽象类
--3.4-抽象类
--第三章 类的重用--3.4-抽象类
-3.5-泛型
--3.5-泛型
--第三章 类的重用--3.5-泛型
-3.6-类的组合
--3.6-类的组合
-3.7-小结
--3.7-小结
-第三章编程练习题
-课件
--课件
-4.0-导学
--导学
-4.1-接口
--接口
--第四章 接口与多态--4.1-接口
-4.2.1-4.2.2-类型转换
--类型转换
--第四章 接口与多态--4.2.1-4.2.2-类型转换
-4.2.3-方法的查找
--方法的查找
--第四章 接口与多态--4.2.3-方法的查找
-4.3-多态的概念
--多态的概念
--第四章 接口与多态--4.3-多态的概念
-4.4-多态的应用举例
--多态的应用举例
--第四章 接口与多态--4.4-多态的应用举例
-4.5-构造方法与多态性
--构造方法和多态性
--第四章 接口与多态--4.5-构造方法与多态性
-4.6-本章小结
--本章小结
-第四章编程作业
-课件
--课件
-5.0-导学
--5.0-导学
-5.1.1-5.1.2-异常处理的概念
--第五章 输入输出--5.1.1-5.1.2-异常处理的概念
-5.1.3-5.1.5-异常的处理
--第五章 输入输出--5.1.3-5.1.5-异常的处理
-5.2-输入输出流的概念
--输入输出流的概念
--第五章 输入输出--5.2-输入输出流的概念
-5.3.1-写文本文件
--写文本文件
--第五章 输入输出--5.3.1-写文本文件
-5.3.2-读文本文件
--读文本文件
--第五章 输入输出--5.3.2-读文本文件
-5.3.3-写二进制文件
--写二进制文件
--第五章 输入输出--5.3.3-写二进制文件
-5.3.4-读二进制文件
--读二进制文件
-5.3.5-File类
--File类
-5.3.6-处理压缩文件
--处理压缩文件
-5.3.7-对象序列化
--对象序列化
-5.3.8-随机文件读写
--随机文件读写
-5.4-本章小结
--本章小结
-课件
--课件
-6.0-导学
--导学
-6.1-Java集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-Map接口及其实现
-6.8-第6章小结
--第6章小结
-课件
--课件
-7.0-导学
--导学
-7.1-绘图
--绘图
-7.2-Swing基础
--Swing基础
-7.3-Swing的层次
--Swing的层次
-7.4-布局管理
--布局管理
-7.5-内部类
--内部类
-7.6-事件处理的基本概念
-7.7-事件派发机制
--事件派发机制
-7.8-顶层容器
--7.8-顶层容器
-7.9-中间层容器(一)
-7.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件