在学会Java的流程控制语句后,利用Eclipse的便利,你可能已经初步体验到编程的乐趣。但幸福总是那么短暂,很快你就会发现,自己可以利用的工具比较少,除了流程控制语句外,几乎额外的东西了。不,还有一大片天地在等你畅游呢。
本人不是编程专业出身,这里叙述OOP的基本概念,全是按照感觉走了。来吧,跟上我的感觉!
什么是OOP?
OOP,即是面象对象的编程,是与结构化编程相对的编程方式。不了解结构化编程也无碍。简单地看下周遭的世界,你就能找到点OOP的特质。
一辆汽车,有轮子、发动机等基本设备,可以行驶的基本功能。作为使用者,我们无需知道汽车的具体构造细节,只要知道如何操作方向盘,让汽车行驶就可以了。
也即是,要达到目标,我们只要获得某一物体,知道如何使用他就可以,无须关注具体的实现细节。
再比如,要组装一辆汽车,需要很多很多的零件,而这些零件呢,都具有一定的规格,能完成某一具体的功能。比如发动机产生动力,刹车片用来制动等等。各个零件相互组合来完成更大的目标,这些零件就是要研究的具体的单元。
上面的例子中,汽车是我们要达到旅行目的所需要使用的单元,发动机、刹车片等是我们要组装一辆汽车需要的单元。在使用过程中,我们只关注单元的规格、单元的能力,而不关心单元具体的运作细节。这些单元,在编程世界里,就可以抽象为类,即有一定属性、一定行为的类。
类的组成
假如要定义一个人,类的名称叫Human,有姓名(这是属性),会说话(这是行为)。在Java定义如下:
public class Human{ // Human即是类的名字
String name;// 这是定义属性
// 这是定义行为
public void speack(String words){
System.out.println(words);
}
}
这样,一个简单的类就定义好了。这个类还不完善,在后续过程中再完善。
类与对象
类与对象的关系,就像人与乔布斯的关系。类是统称,对象是类的某一个具体个体。一个类可以有很多对象,但是对象之间是如何区别的呢?
这就要谈到属性的重要性了!
属性标识对象的状态,如某个人的年龄、性别等,属性也可以标识对象的唯一性,如人的身份证号。
从类创建对象的过程,称为 实例化。Java编程语言中是这样的:
Human zhangSan = new Human();
这样就创建了 zhangSan这个人了。Human zhangSan 的写法类似 int i 。着重讲解后面 new Human()
类与构造方法
在由类实例化一个具体的对象的时候,构造方法就会执行。比如Human这个类,定义了2个构造方法,一个无参数,一个有参数。看清构造方法的形式---无返回值。
public class Human{
String id; // 这是标识对象唯一性的属性
String name;
// 这是new Human()时调用的构造方法
Human(){
}
// 这是 new Human("111111111")时调用的构造方法
Human(String shenFenZheng){
id= shenFenZheng;
}
}
new Human() 即调用无参数的构造方法创建一个 Human实例对象。
类的方法
方法是一个类行为的支撑,类所有的方法定义了这个类的能力范围,具体的实现过程则写在方法的内容中。方法的定义遵循一定的格式,即:
修饰符 返回值类型 方法名称(参数类型 参数名)
public void speack(String words)
这个例子中:
修饰符:public (这个繁琐以后讲)
返回值:void (空,即不返回值)
方法名称:speak
参数类型:String ( 字符串类型 )
参数名称: words(这是在 方法内部该变量的名称)
类的属性与存取方法
作为OOP原则之一:数据隐藏(或称为封装)。对象的属性不能直接被外部对象访问,而应该通过对象自身提供的get(取)、set(存)方法来完成。
public String getName() {
return name;
}
public void setName(String aName) {
name = aName; // 这里的name是类中的属性,该类的所有方法都可以直接访问、赋值
}
一个较为合理的类
至此,一个类的片段我们都有了,下面拼接起来吧:
public class Human {
String id; // 类的属性变量
String name; // 类的属性变量
// 这是new Human()时调用的构造方法
Human() {
}
// 这是 new Human("111111111")时调用的构造方法
Human(String shenFenZheng) {
id = shenFenZheng;
}
public String getId() {
return id;
}
public void setId(String shenFenZheng) {
id = shenFenZheng;
}
// 取name内容的方法
public String getName() {
return name;
}
// 修改name内容的方法
public void setName(String aName) {
name = aName;
}
// 类的行为
public void speak(String words) {
System.out.println(words);
}
}
使用实例:
public class Meeting {
public static void main(String[] args) {
// 一个小娃出生了
Human zhangSan = new Human();
// 报了户口,身份证号是
zhangSan.setId("1234567890123");
// 家长给起了个名字
zhangSan.setName("张三");
// 又一个小娃出生了
Human xiaoMing = new Human();
xiaoMing.setId("3210987654321");
xiaoMing.setName("小明");
// 两人见面了,张三先打招呼
zhangSan.speak("你好!我是"+zhangSan.getName());
// 出于礼貌,小明回了句
xiaoMing.speak("你好!我是"+xiaoMing.getName()+",很高兴认识你");
}
}
这个例子仅引导你了解OOP的基本概念,代码还不是很规范,在学会各种修饰符public private protected default之后,代码会规范。
后面要学习的有:
1、各种修饰符
2、类间关系(依赖、聚合、继承)
3、特殊注意之处final static this super
分享到:
相关推荐
使用Java实现面向对象编程(Java OOP)使用Java实现面向对象编程(Java OOP)使用Java实现面向对象编程(Java OOP)使用Java实现面向对象编程(Java OOP)
本资源包括S2JAVAOOP上机贯穿案例的所有源代码
这个Java贪吃蛇游戏源码可以用于学习和理解Java编程语言、程序设计、面向对象编程以及游戏开发的相关知识。通过阅读和理解这个源码,您可以学习到如何使用Java语言和GUI框架来实现一个简单的游戏,以及如何处理游戏...
这是关于Java面向对象编程(OOP)的简要学习资料,涵盖了类和对象、封装、继承、多态、接口、抽象类和异常处理等基本概念。希望这个资料对您有帮助!如果您有任何其他问题,请随时提问。
我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞...
ACCP 5.0 S2_使用JAVA实现面向对象编程.pdf ACCP5.0 教材
java面向对象编程指南java面向对象编程指南java面向对象编程指南java面向对象编程指南java面向对象编程指南 OOP思想
内容概要: 本文档详细介绍了Java编程中的面向对象编程(OOP)和面向过程编程(Procedural Programming)两种主要编程范式。通过示例代码和详细解释,帮助读者理解这两种编程方式的概念、特点和用法,并对比它们之间...
java oop\ACCP6.0使用Java实现面向对象编程-第五章 .ppt
通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及 如何创建类和对象,了解成员变量和成员方法的特性,掌握 OOP 方式进行程序设计的方法。 【实验原理】或 【实验任务】 ...
放不了超过20m的大文件,分两个部分...必须2个一起下,不然不能解压缩 北大青鸟5.0 2期 使用Java实现面向对象编程(Java OOP) 教师用文件
使用Java实现面向对象编程DLC1例(Java OOP).rar
通过这段代码源码资源,目标是提供一个清晰而易懂的示例,帮助学习者更好地理解Java中的面向对象编程原则和概念。它将演示如何创建类和对象,如何定义和使用继承关系,如何利用封装实现数据隐藏,以及如何利用多态...
一本很不错的讲面向对象的书,给大家分享下 !
代码中,我们定义了一个名为Student的类,该类具有私有的name和age属性,以及公有的构造方法和一些操作属性的方法。...这个示例展示了面向对象编程中类的定义、对象的创建和方法的调用等基本概念。
放不了超过20m的大文件,分两个部分... 必须2个一起下,不然不能解压缩 北大青鸟5.0 2期 使用Java实现面向对象编程(Java OOP)2
1. **理解面向对象编程(OOP)**:Java是一门面向对象的编程语言,因此学习Java最重要的一步就是理解OOP。掌握面向对象编程的概念和原则,能够帮助你更好地理解Java编程语言。 2. **掌握基本语法和关键字**:Java编程...