java第一课 面向对象的编程概念
一、什么是对象(object)?
对象是相关状态和行为的软件包。
1.现实社会的对象都有两个共同特征:状态和行为。如:狗有状态(名称,颜色,品种,饥饿)和行为(吠叫,取出,摇尾)。
2.软件对象在概念上类似于现实世界的对象:它们也包括状态和相关行为。例如:如果自行车仅具有6个档位,则换档的方法可以拒绝小于1或大于6的任何值。
对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。
方法对对象的内部状态进行操作,并作为对象到对象通信的主要机制。
隐藏内部状态并要求通过对象的方法执行所有交互称为数据封装 - 面向对象编程的基本原则。
3.将代码捆绑到单个软件对象中可带来许多好处,包括:
- ) 模块化:可以独立于其他对象的源代码编写和维护对象的源代码。一旦创建,对象就可以轻松地在系统内部传递。
- ) 信息隐藏:通过仅与对象的方法交互,其内部实现的细节仍然隐藏在外部世界之外。
- ) 代码重用:如果对象已存在(可能由其他软件开发人员编写),则可以在程序中使用该对象。这允许专家实现/测试/调试复杂的,特定于任务的对象,然后您可以信任这些对象在您自己的代码中运行。
- ) 可插拔性和调试简便性:如果某个特定对象有问题,您只需将其从应用程序中删除,然后插入另一个对象作为替代对象。这类似于解决现实世界中的机械问题。如果螺栓断裂,则更换它,而不是整个机器。
二、什么是类(class)?
类是创建对象的蓝图或原型。
在现实世界中,您经常会发现许多相同类型的单个对象。可能存在数千种其他自行车,所有相同的品牌和型号。每辆自行车都是使用相同的蓝图构建的,因此包含相同的组件。
在面向对象的术语,我们说你的自行车是一个实例中的类的对象被称为自行车。一类是从中创建单个对象的蓝图。
三、什么是继承(Inheritance)?
面向对象编程允许类继承其他类中常用的状态和行为。
创建子类的语法很简单。在类声明的开头,使用extends
关键字,后跟要继承的类的名称:
class MountainBike extends Bicycle { // new fields and methods defining
// a mountain bike would go here }
四、什么是接口/界面(interface)?//区别于api接口
没有实现的方法集合称为接口。
对象通过它们公开的方法定义它们与外部世界的交互。方法形成对象与外界的界面 ;(例如:电视机正面的按钮是您与塑料外壳另一侧电线之间的接口。按“电源”按钮打开和关闭电视。)
实现接口允许类对其承诺提供的行为变得更加正式。接口在类和外部世界之间形成契约,并且该合同在构建时由编译器强制执行。
如果您的类声称实现了一个接口,那么该接口定义的所有方法必须出现在其源代码中才能成功编译该类。
interface Bicycle { // wheel revolutions per minute
void changeCadence(int newValue); void changeGear(int newValue);
}
class ACMEBicycle implements Bicycle {
int cadence = ;int gear = ;
// The compiler will now require that methods
// changeCadence, changeGear, speedUp, and applyBrakes
// all be implemented. Compilation will fail if those
// methods are missing from this class. void changeCadence(int newValue) {
cadence = newValue;
} void changeGear(int newValue) {
gear = newValue;
}
void printStates() {
System.out.println("cadence:" +
cadence + " gear:" + gear);
}
}
(为了便于对比代码有删减,原文参看 https://docs.oracle.com/javase/tutorial/java/concepts/interface.html)
注意: 要实际编译ACMEBicycle
该类,您需要将public
关键字添加到已实现的接口方法的开头。稍后您将在有关类和对象以及 接口和继承的课程中了解相关原因 。
五、什么是包(package)?
按功能组织类和接口的命名空间称为包。
包是一个命名空间,用于组织一组相关的类和接口。从概念上讲,您可以将包视为与计算机上的不同文件夹类似。您可以将HTML页面保留在一个文件夹中,将图像保存在另一个文件夹中,将脚本或应 因为用Java编程语言编写的软件可以由数百或数千个单独的类组成,所以通过将相关的类和接口放入包来保持组织是有意义的。
Java平台提供了一个适合在您自己的应用程序中使用的庞大的类库(一组包)。该库称为“应用程序编程接口”,简称“API”。它的包代表了最常用于通用编程的任务。例如,String
对象包含字符串的状态和行为; 一个File
对象允许程序员轻松地创建,删除,检查,比较或修改文件系统上的文件; 一个Socket
object允许创建和使用网络套接字; 各种GUI对象控制按钮和复选框以及与图形用户界面相关的任何其他内容。有数以千计的课程可供选择。这使程序员可以专注于特定应用程序的设计,而不是使其工作所需的基础结构。
在 Java平台API规范包含了所有的包,接口,类,字段和Java SE平台提供的方法完整列表。在浏览器中加载页面并为其添加书签。作为程序员,它将成为您最重要的参考文档。
java第一课 面向对象的编程概念的更多相关文章
- 【C语言探索之旅】 第二部分第一课:模块化编程
内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- 尚学堂Java第一课
今天是北京尚学堂郑州分校开课的第一天,小班面授教学. 我很兴奋,是一个小白对IT大神渴求传道授业解惑的兴奋. 杨老师还是一贯耐心详细的手敲了第一堂课的完整大纲,必须给杨老师赞赞赞!!! 从幽默的制定班 ...
- 快乐的一天从JAVA第一课开始,生活美滋滋!!!
---恢复内容开始--- 学JAVA第一天 今天稀里糊涂就把JAVA环境配好了 现在回想一下,吧环境跟大家分享一下…… 第一步:下载 JAVA(推荐使用谷歌浏览器,因为谷歌浏览器右键点 ...
- Java基础之面向对象以及其他概念
一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. JR ...
- 1.Java第一课:初识java
今天也算是正式地开始学习Java了,一天学的不是太多,旨在入门了解Java.还好现在学的都是基础,也能赶得上进度,希望以后能一直保持这种精神状态坚持学下去.下面就简单来说说今天所学的内容吧. 1计算机 ...
- java第一课,java基础
Java: 是1991年SUN公司的James Gosling等人开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒,PDA等的微处理器.java.是面向互联网的语 ...
- java第一课总结
转眼间开学了,我们也正式进入了大二.心里既有激动,又有些感慨,还带有一些担忧.激动的是我们褪去了大一的稚气成为了一名大二的学长了,第一次体会到了大学学长的感觉,心里很是激动.感慨的是我们又成长了一岁, ...
- Java 第一课
怎么去学习java: 1,课前预习,加深对课上学习的吸收! 2,课后预习,让我们能够对所学内容的掌握! 3.通过画流程图,锻炼逻辑思维能力,学会从程序员的角度去看到问题,摒弃以前的惯性的思维方式!
- java第一课:环境、变量、数据类型
一.java编程注意事项1.java区分大小写2.每条语句结尾有分号3.上下级代码注意缩进4.大括号要成对出现5.标点符号要用英文半角(半角全角区别)二.eclipse1.eclipse是自编译及时编 ...
随机推荐
- Android为TV端助力 转载:RecyclerView分页加载
package com.android.ryane.pulltoloaddata_recyclerview; import android.os.Handler;import android.os.L ...
- python自定义pi函数的代码
下边内容是关于python自定义pi函数的内容. def pi(): # Compute digits of Pi. # Algorithm due to LGLT Meertens. k, a, b ...
- Git 安装 on centos7
本文演示如何在CentOS7上安装和使用git. 1 准备工作 1.1 浏览器访问安装包下载地址: https://www.kernel.org/pub/software/scm/git/ 找到下载列 ...
- SQL Server 取日期时间格式 日期与字符串之间的转换
SQL Server 取日期时间部分 在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate() 用DateName()就可以获得相应的 ...
- Linux(一)—— Unix&Linux 历史
Linux(一)-- Unix&Linux 历史 Unix =Unix内核+Unix实用工具 Unix Unix 的诞生 Unix的历史可以追溯到20世纪60年代中期,当时麻省理工学院,AT& ...
- jquery html() callback
通过JQuery的.html()函数我们可以非常方便地加载一段HTML到指定的元素中,例如给<div></div>中放入一组图片.问题是JQuery的.html()函数是同步的 ...
- goodbye 2018, hello 2019
纵使不愿意,终究还是到了岁末. 2018 即将过去的一年,已经完成的事情自己做得不足.年初计划要做的几件事情都做了,感觉没有尽力去做好. 工作 16年毕业之后到今年,算是真正意义上完成从学生时 ...
- 使用git 遇见的错误使用到的命令
查看远端地址 git remote -v 需要重新添加地址 git remote set-url origin xxx 远程新的地址 git remote add origin_new 设置用户名 ...
- 在后台业务管理系统中使用Autofac实现微信接口的处理
在后台业务管理系统中使用Autofac实现微信接口的处理,我们只需要把相关使用到的DLL放到BIN目录里面即可,通过IOC控制反转方式实现对接口的调用.在实现在业务系统里面,我们本身程序可能已经依赖了 ...
- Photoshop快速给美女人像换头发
今天给大家带来的教程是应用PS来抠出人物图片的发丝和修改头发的颜色. OK开始今天的教程 1.将素材文件拖拽进PS,CTRL+J复制一层. 2.应用快速选择工具大致的将头发部分选区出来,不需要太过仔细 ...