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对象和类学习
定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...
随机推荐
- Oracle Sql 胡乱记
/Oracle查询优化改写/ --1.coalesce 返回多个值中,第一个不为空的值 select coalesce('', '', 's') from dual; --2.order by --- ...
- 经度和纬度在SQL中的数据类型
冬天太冷,等坐公司班车也很冷,就萌生了给班车做一个到站查询功能. 在某宝上买了汽车在线的GPS设备, 终生免费的服务的. 这里不得不提下这个设备的优点, 它提供API接口,还是免费的. 所以在班车上装 ...
- Kubernetes入门-集群安装
Kubernetes是谷歌开源的容器集群编排平台,是一个完备的分布式系统支撑平台,为容器化应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,具有强大的故障发现和自我修复机制.服务滚动升级 ...
- 【Spring Cloud笔记】 断路器-hystrix
在微服务架构中,一个微服务的超时失败可能导致瀑布式连锁反映,Spring Cloud Netflix 的断路器Hystrix通过自主反馈,防止了这种情况发生.下面介绍简单的断路器使用方法. [step ...
- Python之爬虫的理解
# -*- coding: utf-8 -*- 中文用户一定先用这行来声明编码方式 爬虫: 爬虫是自动访问互联网,并且提取数据的程序 (从网络上获取非结构化的数据,ETL将这些数据转换为结构化数 ...
- Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式
Bootstrap -- 插件: 按钮状态.折叠样式.轮播样式 1. 按钮(Button)插件:可以添加进一些交互,比如控制按钮状态. 如需向按钮添加加载状态,只需要简单地向 button 元素添加 ...
- Linux Mint如何添加windows分享的网络打印机?
1.安装samba sudo apt-get install samba 2.找到系统打印机选项 通过 Menu-->>控制中心-->>系统管理找到 Printers选项,双击 ...
- CentOS 7 MySql 解压版安装配置
下载 访问www.mysql.com 点击DOWNLOADS-->Community-->MySQL Community Server 选择要下载的版本,目前可选择的有:5.5.5.6.5 ...
- vuetify
vue add vuetify打包之后再发过来另外剪头发 typescript 1.配置 2.当用 let 声明一个变量,它使用的是词法作用域或块作用域. let与var区别,所以要--- 3.看来 ...
- css display和vertical-align 属性
display 定义和用法 display 属性规定元素应该生成的框的类型. 实例 <html> <head> <style type="text/css&qu ...