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对象和类学习
定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...
随机推荐
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- Storm入门-Storm与Spark对比
作为一名程序员通病就是不安分,对业界的技术总要折腾一番,哪怕在最终实际工作中应用到的就那么一点.最近自己准备入门Storm学习,关于流式大数据框架目前比较流行的有Spark和Storm等,在入门之前, ...
- 自研数据库CynosDB存储系统如何实现即时恢复
本文由云+社区发表 本文作者:许中清,腾讯云自研数据库CynosDB的分布式存储CynosStore负责人.从事数据库内核开发.数据库产品架构和规划.曾就职于华为,2015年加入腾讯,参与过TBase ...
- 深入理解内存映射mmap
内存映射mmap是Linux内核的一个重要机制,它和虚拟内存管理以及文件IO都有直接的关系,这篇细说一下mmap的一些要点. 修改(2015-11-12):Linux的虚拟内存管理是基于mmap来实现 ...
- anki server 错误与解决
anki 客户端 转载请注明出处 :http://www.cnblogs.com/qq-757617012/ 1.无法同步 是否突然停电,导致程序损坏(提示被防火墙或杀毒软件阻止) anki客 ...
- Linux新手随手笔记1.3
shell脚本的编写(划重点) #!/bin/bash 脚本的声明信息 #sjsjdhsjdhh 脚本的注释 ls -l ...
- 【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出 ...
- xcode10下,Build Phases下没有Embed Frameworks
升级xcode10后发现,Build Phases下,找不到Embed Frameworks了,最后发现在General下,有一项“Embedded Binaries",可以在这里添加Fra ...
- iview 将table的selection多选变单选方法
相信很多使用iview的朋友,在用到table,都会遇到需要使用selection的场景,但是总会有那么一个产品汪,觉得iview的单选效果不好,非要用selection的来做单选,那么下面这个方法就 ...
- 01构建第一个SpringBoot工程
第一篇:构建第一个SpringBoot工程 文章指导 学习笔记 学习代码 创建项目 创建工程:Idea-> new Project ->Spring Initializr ->填写g ...