0412ooday01.txt=============对象和类(上)
对象和类(上)
面向对象程序设计:面向过程的结构化程序设计、什么是抽象数据类型、什么是类
定义一个类:定义类的成员变量、定义类的方法
创建并使用对象:使用new关键字创建对象、引用类型变量、访问对象的成员遍历、调用方法、
引用类型变量的赋值、null和NullPointException
1.1.2. 什么是抽象数据类型
所谓抽象数据类型可以理解为:将不同类型的数据的集合组成一个整体用来描述一种新的事物。
1.1.3. 什么是类
类定义了一种抽象数据类型。
类不但定义了抽象数据类型的组成(成员变量),同时还定义了可以对该类型实施的操作(方法)。
什么是对象---------真实存在的单个个体【具体的】,现实中存在的都是对象。 对象是类的具体实现
什么是类-----------类型/类 代表一类对象【抽象的】 找类之前先找对象 类是对象的模板
类中可以包含:
1.所有对象所共有的属性/特征 ------------变量
2.所有对象所共有的行为 ------------------方法
new 一个对象后,变量的默认值是null
通过同一个类创建的对象:
同一类型的对象 特征相同(使用相同的变量、方法),数据不同(赋值不同)
类是对象的模板,对象是类的具体实例。-------------------------
类定义了一种抽象数据类型,而类不但定义了抽象数据类型的组成(成员变量),同时还定义了对该类型可以实施的操作(方法)
1.2. 定义一个类
类是一种引用数据类型。类为对象的模板,简单的说就是分类。
类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述一类对象共同的数据结构
在Java语言中,类的成员变量的定义可以使用如下语法:
class 类名 {
成员变量类型 变量名称;
………
}
1.2.2. 定义类的方法
类中除了定义成员变量,还可以定义方法,用于描述对象的形为,封装对象的功能
class 类名 {
修饰词 返回值类型 方法名称(参数列表) {
方法体………
}
… … …
}
1.3. 创建并使用对象
1.3.1. 使用new关键字创建对象
类定义完成后,可以使用new关键字创建对象。创建对象的过程通常称为实例化。
1.3.2. 引用类型变量
为了能够对实例化的对象进行访问控制,需一个特殊的变量,即引用。对引用有两点需要说明:
1. 引用类型变量可以存储该类对象的地址信息,通常称为“指向该类的对象”,当一个引用类型变量指向该类的对象,就可以通过这个变量对对象实施访问。
2. 除8种基本类型之外,用类、接口、数组等声明的变量都称为引用类型变量,简称“引用”。
1.3.4. 引用类型变量的赋值
引用类型变量存储的是对象的地址信息, 对引用类型变量的赋值, 除了使用上面的new关键字以外,还可以有另外一种赋值方式,
即:相同类型的引用类型变量之间相互赋值。 ----------------------------------
需要注意的是:引用类型变量之间的赋值不会创建新的对象,但有可能会使两个以上的引用指向同一个对象。----------------------------
Cell c=new Cell();
Cell cc=c; //cc 和 c 指向了同一个对象
引用类型 之间 用 =:对一个引用的改变,会影响另一个引用 ------------------------------------
基本类型 之间 用 =:对一个变量的修改,不会影响另一个变量------------------------------------------------》【重要】
1.3.5. null和NullPointerException
引用类型默认值为:null--------------------------
对于引用类型变量,除了上面的两种赋值方式之外,还可以对其赋值为null。
null的含义为“空”,表示还没有指向任何对象-----------------------【重要】
需要注意:
当一个引用的值为null的时候,如果通过引用访问对象成员变量或者调用方法是不合逻辑的(因其没有指向某对象,自然不会有属性和方法),此时,会产生NullPointerException(空指针异常)。
面向对象:OO
OOD-------------面向对象设计
OOA-----------面向对象分析
OOAD---------面向对象分析和设计
OOP--------面向对象编程
OA-----------办公系统 用.NET写的
产品-------------所有人都能用
项目-------------只适应一个公司使用
高质量的代码:
复用性好、扩展性好、维护性好、可移值性好、健壮性好(不能常运行出错)
俄罗斯方块设计模式:
1.找对象 有很多的格子
2.抽类 格子类Cell
3.设计类中的变量、方法
4.创建对象并测试
Cell{
颜色,形状,宽,高-------> 用图片
行号,列号
下落的方法
}
数据类型 引用类型变量 指向 对象
Student s = new Student();
数据类型 基本类型变量
int a = 10;
除8种基本类型之外,用类、接口、数组等声明的变量都称为引用类型变量,简称“引用”
课后作业:
2 请描述类和对象的关系
参考答案
对象是一个客观存在的实体,是面向对象编程过程中分析与解决问题的出发点与基础。对象的实质就是内存中的一块数据存储区域,其数据结构由定义它的类来决定。
类是用于构建对象的模板,对象通过类的实例化产生,一个类可以创建多个对象,每个对象拥有自己的数据和行为。
3 请描述引用类型和基本类型的区别
参考答案
除8种基本类型之外,用类名(接口、数组)声明的变量称为引用类型变量,简称“引用”。引用的功能在于访问对象。
基本类型变量本身就包含了其实例数据,而引用类型变量中存储的是某个对象在内存中的地址信息。当一个引用类型变量指向该类的对象时,就可以通过这个变量访问对象。
0412ooday01.txt=============对象和类(上)的更多相关文章
- Day01:对象和类(上)
对象的概念 Java 是面向对象的编程语言,对象就是面向对象程序设计的核心.所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念.对象有以 ...
- .NET 基础 一步步 一幕幕[面向对象之对象和类]
对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...
- Python-面向对象(类)二
一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...
- Python-面向对象(类)一
一.如何创建类 class cls: pass 二.创建方法 构造方法: __init__(self, arg) obj = 类('a1') 普通方法: obj = 类('xxx') obj.普通方法 ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- js之数组,对象,类数组对象
许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...
- 使用prototype 对象定义类成员
使用prototype 对象定义类成员上一节介绍了类的实现机制以及构造函数的实现,现在介绍另一种为类添加成员的机制:prototype 对象.当new 一个function 时,该对象的成员将自动赋给 ...
- PHP操作FTP类 (上传下载移动创建等)
使用PHP操作FTP-用法 Php代码 收藏代码 <? // 联接FTP服务器 $conn = ftp_connect(ftp.server.com); // 使用username和passwo ...
- java对象和类学习
定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...
随机推荐
- UE3中Object和Actor的创建与销毁
创建Object ① 在uc脚本中使用new运算符来创建 /********************************************************************** ...
- DataPipeline创始人&CEO 陈诚:沃森与AI
引言:本文来自infoQ架构师电子月刊对DataPipeline创始人&CEO陈诚的约稿.陈诚,毕业于上海交大,留学于美国密西根大学,前Yelp大数据研发工程师,曾就职于美国Google.Ye ...
- 在cmd里,java运行jar包中指定Class的命令
java -classpath ****.jar ****.****.className
- android 6.0 Intent 安装apk闪退
需求描述: 利用android系统自带的DownloadManager下载apk文件,并且打开安装界面. 问题描述: 关于DownloadManager的使用网上有很多例子,在此不啰嗦.下载完成之后在 ...
- 抓包工具Charles安装时需要注意的地方
最新接到一个任务,需要为app端的升级提供新的接口.以前没有搞过这个,其实搞完之后也就那样!其中有很重要的一点,就是需要用到抓包工具,进行联调测试,观看app端的数据情况. 抓包工具最常用的两个:fi ...
- windows server 2012 R2 部署AD域服务
一.部署AD域控制器 首先,我们检查第一台已经安装Windows Server 2012 R2的服务网络的相关配置,确定的服务器IP地址.子网掩码.默认网关的参数如下,由于该服务器既要充当ADDC角色 ...
- .net问号的作用
??运算符(C# 参考)http://msdn.microsoft.com/zh-cn/library/ms173224.aspx 可以为 null 的类型(C# 编程指南)http://msdn.m ...
- # 20175329 2018-2019-3 《Java程序设计》第九周学习总结
20175329 2018-2019-3 <Java程序设计>第九周学习总结
- SpringCloud---网关概念、Zuul项目搭建(六)
SpringCloud---网关概念.Zuul项目搭建(六) 一.网关概念 1.什么是路由网关 网关是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求.鉴权.监控. ...
- Python——模块——linecache(对文本行的随机访问)
一.模块的作用 linecache模块允许它获取Python资源文件的任一行. 二.模块函数 (1)linecache. getline(filename, lineno, module_global ...