对象和类(上)
面向对象程序设计:面向过程的结构化程序设计、什么是抽象数据类型、什么是类
定义一个类:定义类的成员变量、定义类的方法
创建并使用对象:使用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=============对象和类(上)的更多相关文章

  1. Day01:对象和类(上)

    对象的概念 Java 是面向对象的编程语言,对象就是面向对象程序设计的核心.所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念.对象有以 ...

  2. .NET 基础 一步步 一幕幕[面向对象之对象和类]

    对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...

  3. Python-面向对象(类)二

    一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...

  4. Python-面向对象(类)一

    一.如何创建类 class cls: pass 二.创建方法 构造方法: __init__(self, arg) obj = 类('a1') 普通方法: obj = 类('xxx') obj.普通方法 ...

  5. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  6. js之数组,对象,类数组对象

    许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...

  7. 使用prototype 对象定义类成员

    使用prototype 对象定义类成员上一节介绍了类的实现机制以及构造函数的实现,现在介绍另一种为类添加成员的机制:prototype 对象.当new 一个function 时,该对象的成员将自动赋给 ...

  8. PHP操作FTP类 (上传下载移动创建等)

    使用PHP操作FTP-用法 Php代码 收藏代码 <? // 联接FTP服务器 $conn = ftp_connect(ftp.server.com); // 使用username和passwo ...

  9. java对象和类学习

    定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...

随机推荐

  1. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  2. JavaScript 节流函数 Throttle 详解

    在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发.比如:重新调整浏览器窗口大小(resize),浏览器页面滚动(scroll),鼠标移动(mousemove).也就是说用户在触发这些浏 ...

  3. LeetCode算法题-Shortest Completing Word(Java实现)

    这是悦乐书的第309次更新,第330篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第178题(顺位题号是748).从给定的字典单词中查找最小长度单词,其中包含字符串lic ...

  4. 【导航】FPGA相关

    [博客索引] FPGA相关 数字电路实现上,较多的经验是基于Xilinx/Altera的FPGA,使用Verilog语言,实现光传输SDH.OTN通信协议,DDR3控制器应用,以及视频分割.合并.sc ...

  5. Flink应用案例:How Trackunit leverages Flink to process real-time data from industrial IoT devices

    January 22, 2019Use Cases, Apache Flink Lasse Nedergaard     Recently there has been significant dis ...

  6. mongoDB概述

    mongoDB介绍 是一个开源的文档数据库,基于分布式文件存储的数据库.由 C++ 语言编写,并领先的 NoSQL 数据库(非关系型数据库)MongoDB 是由 c++语言编写. MongoDB 是一 ...

  7. node js 异步运行流程控制模块Async介绍

    1.Async介绍 sync是一个流程控制工具包.提供了直接而强大的异步功能.基于Javascript为Node.js设计,同一时候也能够直接在浏览器中使用. Async提供了大约20个函数,包含经常 ...

  8. SpringBoot整合Redis及Redis工具类撰写

            SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...

  9. spring boot 打包war

    @SpringBootApplication public class AesApplication extends SpringBootServletInitializer { public sta ...

  10. 浅析RPC远程过程调用基本原理

    在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系 ...