2.1面向对象的程序设计方法概述

对象

程序中:

一切皆是对象

都具有标识,属性和行为

通过一个或多个变量来保存其状态

通过方法实现他的行为

将属性及行为相同或相似的对象归为一类

类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为

在面向对象的程序设计中,每一个对象都属于某个特定的类

2.1.1抽象

过程抽象

数据抽象

2.1.2封装

2.1.3继承

Java仅支持单继承

2.1.4多态

2.2类与对象

2.2.1类的声明

声明形式
[public] [abstract|final]class 类名称
[extends 父类名称]
[implements 接口名称列表]
{
变量成员声明及初始化;
方法声明及方法体;
}

关键字

修饰符

可以有多个,用来限定类的使用方式

public公有类

abstract抽象类

final终结类

2.2.2对象的声明与引用

变量和对象

变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量成为引用变量。

对象的声明

类名 变量名

声明一个引用变量时并没有对象生成

对象的创建

new <类名>()
eg: aclock = new Clock()

2.2.3数据成员

声明格式

[public|protected|private] [static][final][transient][volatile]
变量数据类型 变量名1[=变量初值],
变量名2[=变量初值],...;

格式说明

public、protected、private为访问控制符

static指明这是一个静态成员变量

final指明变量的值不能被修改

transient指明变量是临时状态(不必持久化(serialize))

volatile指明变量是一个共享变量

实例变量

没有static修饰的变量称为实例变量

储存在堆中

类变量

需要加static修饰符来声明

final修饰符

实例变量、类变量、方法参数

2.2.4方法成员

可以没有。

分为实例方法和类方法

声明格式
[public|protected|private] [static][final][abstract][native][synchronized]
返回类型 方法名([参数列表])[throws exceptionList]
{
方法体
}

public、protected、private为存取控制符

static指明方法是一个类方法

final指明方法是一个终结方法

abstract指明方法是一个抽象方法

参数传递

值传递:参数类型为基本数据类型时

引用传递:参数类型为引用变量时(比如对象类型或数组时)

实例方法

类方法

声明加static修饰符,不能被声明为抽象,不能访问实例变量。

2.2.5类的组织

import语句的格式

import package1[.package2..].(classname|*);

2.2.6类的访问控制

关键字this的使用

如果形式参数与实例变量名相同,则需要在实例变量名之前加this关键字,否则系统会将实例变量当成形式参数。

在上面的set方法中,如果形式参数为radius,则需要在成员变量radius之前加上关键字this。

代码如下:
public void setRadius(int radius)
{
this.radius = radius
}

2.3对象的初始化和回收

2.3.1构造方法

一种和类同名的特殊方法

用来初始化对象

Java中的每个类都有构造方法,用来初始化该类的一个新的对象

没有定义构造方法的类,系统自动提供默认的构造方法

没有返回类型,修饰符void也不能有

方法重载

一个类中有两个及以上同名的方法,但参数表不同,这种情况就被称为方法重载。

2.3.2内存回收技术

垃圾收集器,finalize()方法

2.4枚举类型

[public] enum 枚举类性名称[implements 接口名称列表]
{
枚举值;
变量成员声明及初始化;
方法声明及方法体;
}

枚举类型没有public的构造函数

枚举值是public、static、final的。

2.4.1枚举类型的默认方法

#取得枚举值的数组
public static T[] values()
#取得枚举值对应的字符串
public String toString()
#取得对象在枚举类型中的索引
public final int ordinal()
#字符串转换为枚举值
public static T valueOf(String)

2.5.2声明toString()方法

2.5.4使用DecimalFormat类

public String toString(){
return ("Account#"+accountNumber+"with balance"+new java.text.DecimalFormat("$0.00").format(balance)); }

Java复习(二)类与对象的基本概念的更多相关文章

  1. Java学习笔记十三:Java中的类和对象

    Java中的类和对象 一:什么是对象: 总的来说就是"万物皆对象",客观存在的事物皆为对象.是计算机所关注的具体信息. 对象(object)是一件事.一个物体.一个名词,或可以获得 ...

  2. Java程序设计基础笔记 • 【第7章 Java中的类和对象】

    全部章节   >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...

  3. Java 反射 分析类和对象

    Java 反射 分析类和对象 @author ixenos 摘要:优化程序启动策略.在运行时使用反射分析类的结构和对象 优化程序启动策略 在启动时,包含main方法的类被加载.它会加载所有它需要的类. ...

  4. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  5. Java自学-面向对象 类和对象

    Java中的类和对象 引入面向对象的基本概念 假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做? 步骤 1 : 设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必 ...

  6. python3 类、对象的基础概念

    类:具有相同特性和方法的抽象概念称为类 对象:从类中具体描述的一个事物称为对象 类和对象的关系:类是对象的抽象概念,对象是类的具体实例 class test001: #创建类 def __init__ ...

  7. 3.JAVA基础复习——JAVA中的类与对象

    什么是对象: 就是现实中真实的实体,对象与实体是一一对应的,现实中每一个实体都是一个对象在. JAVA中的对象: Java中通过new关键字来创建对象. 类: 用JAVA语言对现实生活中的事物进行描述 ...

  8. Java基础 之二 类和对象

    1.基础概念 1) 概念 简单来说,类是具有相同特征事物的抽象,比如有轮子的都可以抽象为车:对象则可以看做类的具体实例,比如创建一个法拉利的车,就是车这个类的实例. 抽象.封装.继承.多态是类的四个特 ...

  9. Java面向对象(一) 类和对象

    一.软件开发进化史 摘自<从零开始学架构> 机器语言(1940年) 最早的软件开发使用的是“机器语言”,直接使用二进制码0和1来表示机器可以识别的指令和数据. 汇编语言(20世纪40年代) ...

随机推荐

  1. iOS 多线程 GCD part3:API

    https://www.jianshu.com/p/072111f5889d 2017.03.05 22:54* 字数 1667 阅读 88评论 0喜欢 1 0. 预备知识 GCD对时间的描述有些新奇 ...

  2. Codeforces 442A Borya and Hanabi

    有五种花色 外加 五种点数 共25张牌,每次有n张牌,主人知道这n张牌中有哪些牌,并且哪种牌有几张,但是不知道具体是哪张牌,他可以问某种花色,然后知道了哪几张是该花色,也可以问点数,然后就知道了哪几张 ...

  3. JPA 开发中遇到的错误

    JPA 开发中遇到的错误 (2011-07-13 16:56:12) 转载▼ 标签: 杂谈 分类: Java/J2EE 常见异常1.异常信息:org.hibernate.hql.ast.QuerySy ...

  4. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring AOP(面向切面编程)

    面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式.Spring AOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的. AOP ...

  5. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程序员的博客平台 开发者为什么要写作 写作平台 第三方博客平台 自建博客平台 开发论坛 1 ...

  6. 利用libpcap抓取数据包

    转载自:http://blog.csdn.net/tennysonsky/article/details/44811899 概述 libpcap是一个网络数据包捕获函数库,tcpdump就是以libp ...

  7. Ubuntu下运行python文件

    方法一: 直接> python2.7/python3.6 test.py 方法二: 在文件首行写上  #!/usr/bin/python3 这个是配置的路径 也可以通过 > which p ...

  8. redis主从复制原理与优化-高可用

    一 什么是主从复制 机器故障:容量瓶颈:QPS瓶颈 一主一从,一主多从 做读写分离 做数据副本 扩展数据性能 一个maskter可以有多个slave 一个slave只能有一个master 数据流向是单 ...

  9. python之路(dingo 框架)

    Python之路  转载自QIMI老师  Python之路 第一篇:Python基础 PyCharm使用秘籍免费视频教程v3 ... 迭代器生成器 模块和常用内置模块 面向对象 面向对象进阶 网络编程 ...

  10. pip速度慢解决办法

    pip速度慢解决办法 sudo pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 注意加不加sudo是 ...