对象和类(上)
面向对象程序设计:面向过程的结构化程序设计、什么是抽象数据类型、什么是类
定义一个类:定义类的成员变量、定义类的方法
创建并使用对象:使用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第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

    Python第十三天   django 1.6   导入模板   定义数据模型   访问数据库   GET和POST方法    SimpleCMDB项目   urllib模块   urllib2模块 ...

  2. Storm入门-Storm与Spark对比

    作为一名程序员通病就是不安分,对业界的技术总要折腾一番,哪怕在最终实际工作中应用到的就那么一点.最近自己准备入门Storm学习,关于流式大数据框架目前比较流行的有Spark和Storm等,在入门之前, ...

  3. 自研数据库CynosDB存储系统如何实现即时恢复

    本文由云+社区发表 本文作者:许中清,腾讯云自研数据库CynosDB的分布式存储CynosStore负责人.从事数据库内核开发.数据库产品架构和规划.曾就职于华为,2015年加入腾讯,参与过TBase ...

  4. 深入理解内存映射mmap

    内存映射mmap是Linux内核的一个重要机制,它和虚拟内存管理以及文件IO都有直接的关系,这篇细说一下mmap的一些要点. 修改(2015-11-12):Linux的虚拟内存管理是基于mmap来实现 ...

  5. anki server 错误与解决

    anki 客户端 转载请注明出处 :http://www.cnblogs.com/qq-757617012/ 1.无法同步 是否突然停电,导致程序损坏(提示被防火墙或杀毒软件阻止)     anki客 ...

  6. Linux新手随手笔记1.3

    shell脚本的编写(划重点) #!/bin/bash                    脚本的声明信息 #sjsjdhsjdhh                  脚本的注释 ls -l    ...

  7. 【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障

    非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出 ...

  8. xcode10下,Build Phases下没有Embed Frameworks

    升级xcode10后发现,Build Phases下,找不到Embed Frameworks了,最后发现在General下,有一项“Embedded Binaries",可以在这里添加Fra ...

  9. iview 将table的selection多选变单选方法

    相信很多使用iview的朋友,在用到table,都会遇到需要使用selection的场景,但是总会有那么一个产品汪,觉得iview的单选效果不好,非要用selection的来做单选,那么下面这个方法就 ...

  10. 01构建第一个SpringBoot工程

    第一篇:构建第一个SpringBoot工程 文章指导 学习笔记 学习代码 创建项目 创建工程:Idea-> new Project ->Spring Initializr ->填写g ...