文档章节

类、对象

showlike
 showlike
发布于 2017/05/20 21:57
字数 386
阅读 6
收藏 0
点赞 0
评论 0

类:具有相同行为、特征的一类事物

在java代码中以接口、抽象类及类的形式表示

对象:类中的具体实例

类、对象相对现实世界是一 一对应的,这也是业务需求映射成对象实现的对应点

举例:

现实世界的人,就是对应为 类,而我们具体的某人,如张三,就是类对象。

类对应成代码我们可以作如下实现:

package com.showlike.clazz;

public class Person {
	private final int eye = 2;
	private final int nose = 1;
	private final int mouth = 1;
	private final int ear = 2;
	private String color ;
	private String name;
	
	public String getColor() {
		return color;
	}

	public String getName() {
		return name;
	}

	public int getEye() {
		return eye;
	}

	public int getNose() {
		return nose;
	}

	public int getMouth() {
		return mouth;
	}

	public int getEar() {
		return ear;
	}
}

而人又分黄种人、黑种人、白种人

package com.showlike.clazz;

public class WhitePerson extends Person {
	
	public String getColor() {
		return "white";
	}
}


package com.showlike.clazz;

public class YellowPerson extends Person {
	
	public String getColor() {
		return "yellow";
	}
}

 

而具体到张三、王五,就是人类的中的具体实例对象

package com.showlike.clazz;

public class WangWu extends WhitePerson {
	
	public String getName() {
		return "wangwu";
	}
}



package com.showlike.clazz;

public class ZhangSan extends YellowPerson {

	public String getName() {
		return "zhangsan";
	}
	
}

package com.showlike.clazz;

public class Test {

	public static void main(String[] args) {
		Person zhangsan = new ZhangSan();
		System.out.println("name: "+zhangsan.getName());
		System.out.println("color: "+zhangsan.getColor());
		
		WhitePerson whitePerson = new WangWu();
		System.out.println("name: "+ whitePerson.getName());
		System.out.println("color: "+ whitePerson.getColor());
	}

}


ounput:
name: zhangsan
color: yellow
name: wangwu
color: white

至此 类、对象大概概念就是这些

但在复杂的业务中就不会这么简单,要设计出扩展性好,灵活性高的项目,还是需经过大量的lu ma实践,同时高度熟悉业务。

在设计的同时结合设计原则、设计模式进行。

 

 

© 著作权归作者所有

共有 人打赏支持
showlike
粉丝 0
博文 10
码字总数 7575
作品 0
广州
高级程序员
Objective-C 源码(一):对象模型

首先,你要先弄清楚什么是类,什么是对象。(为了说清楚这个问题,先举个栗子:类—>对象—>实例:人类是类;某个人是对象;你是实例;实例本身也是对象。这下基本能理解其中的差别了,要是还...

神补刀 ⋅ 2015/11/10 ⋅ 0

Python学习笔记二十二(多继承 / 属性和方法 / 常量 / with和上下文管理器 )

多继承 狮虎兽, 不知道你有没有听说过? 狮虎兽,是雄狮(Panthera leo)与雌虎(Panthera tigris)杂交后的产物,是属于猫科豹属的一员. 用程序模拟一下狮虎兽. 当子类有多个父类 ( Lion 和 ...

DragonFangQy ⋅ 05/23 ⋅ 0

metaid.rb学习笔记

当需要动态扩展一个类定义的类方法时候,我们可以利用metaid.rb,一个为元编程创建的极小的库来实现,代码如下: # metaid a few simple metaclass helpers http://github.com/dannytatom/m...

imxxb ⋅ 2011/09/20 ⋅ 0

OC-基础总结(一)

OC基础总结 重新回过头看这些基础知识,对许多知识点都有新的认识,拥有坚实的基础才能更快的成长。 #improt OC程序的源文件的后缀名是.m m代表message表示消息机制。main 仍然是OC程序的入口...

xx_cc ⋅ 2017/04/22 ⋅ 0

Java反射知识总结(1)——阅读

反射是 Java中非常重要的一个语言特性,反射强大和完善让 Java语言在工程实践 中的灵活性大增强, 使得 Java 程序在运行时可以探查类的信息, 动态创建对象程序在运行时可以探查类的信息, ...

关河 ⋅ 2016/01/19 ⋅ 0

delphi 模式编程 第二章总结

本章重点摘要: 对象模型机制 动态绑定机制 类型转换机制 接口抽象机制 一、对象模型机制 对象本质: 相关代码和数据的组合,是包含相互之间有联系的过程集和数据的软件包 可以视为变量,其类...

CODER-SU ⋅ 2013/06/14 ⋅ 0

object_getClass(obj)与[obj class]的区别在Object-C的类型结构中

在Object-C的类型结构中,有几个比较重要的概念:Object(实例),Class(类),Metaclass(元类),Rootclass(根类),Rootclass‘s metaclass(根元类),且这些都是对象。因此标题中的“obj”...

小春0618 ⋅ 2016/05/08 ⋅ 0

[super class]与[self class]、isKindOfClass与isMemberOfClass

面试题一 在项目中新建Person类继承NSObject,在Person类中打印 打印结果分别是什么? 源码分析 回答这个面试题之前我们需要先弄懂两点: •class与superClass方法 •super关键字 class方法 ...

coderLZ ⋅ 06/01 ⋅ 0

java中的实例成员与类成员

首先, 类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。也即是说,类是一种用于创建具体实例(对象)的数据类型。 类体中包括成员变量的声明和方...

牧羊人Berg ⋅ 2015/10/12 ⋅ 0

Java的类锁和对象锁

类锁和对象锁不是同1个东西,一个是类的Class(对应的唯一的一个即这类的二进制字节码)对象的锁,1个是类的实例(!即new出的一个类的对象,一个类会有多个实例对象)的锁。也就是说:1个线程访...

vshcxl ⋅ 2016/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 9分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 15分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 18分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 22分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 36分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 40分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 51分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 56分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部