JAVA 基础入门 - 面向对象概念

JAVA 基础入门 - 面向对象概念

目标

	本文目标期望能够对面向对象的一些名词进行解释,并与真实世界连接起来,记得刚刚入门面向对象编程的时候,这些名词都很简单,意思也好理解,但是在java中,他具有的特性,代表的含义,往往就被自己的思维局限住,现在通过参阅官方文档来梳理一下各个常见基本名词的定义

什么是对象

对象是对真实世界里事物在软件程序中的建模,往往由“状态”和“行为”组成“,比如真实世界的汽车状态(已启动, 已熄火,当前速度,加速中,减速中 等),汽车行为(启动,熄火,踩油门,踩刹车等),台灯状态(开,关),台灯行为(打开,关掉)

事物的状态和行为在Java中对应对象的属性和方法,在其他编程语言可能分别对应变量和方法(如JS)

使用对象有很多好处
1、模块化,一个对象的代码可以独立于其他对象进行编码和维护,并且编写一次就可以在系统中流转使用
2、信息绑定和隐藏,JAVA中的对象会隐藏内部状态,暴露外部方法供程序间使用来修改内部状态,这也是一个面向对象编码基本原则,就比如一个炒菜的老板穿着出行都和普通人没有两样,但是当你和他交谈的时候他说他有十栋楼,每天收租很累。。。这样我们就知道了,老板很累是他的状态,老板说话就是暴露他状态的方法,对的,就是这样的
3、代码重用,使用对象编写的代码往往指责单一,功能明确,便于阅读和维护
4、可以插拔,因为将状态和方法包装成一个对象,当对象出现问题时只需要修复或替换这个对象就可以

什么是类

现实世界里汽车有很多,每一辆汽车是一个对象,而每一类汽车构成类的概念
类会圈定一些状态和行为作为对象的蓝本
对象参考蓝本产生一个带具体状态和行为实例对象

public class Car{
	private int speed;
	
	public void speedUp(int newSpeed){
		speed = newSpeed;
	}
}

什么是继承

汽车有很多,汽车也衍生出了许多子类别的汽车, 如 商用车,跑车,越野车
秉承青出于蓝而胜于蓝的规则,子类的属性和方法往往比父类的更多更全,这就是继承。JAVA中使用extends来实现

class Taxi extends Car{
	//
	private int taximeter;
	private String city;

}

什么是接口

正如面向对象基本原则提到,对象应当隐藏自己的属性, 通过对外提供方法的方式来修改内部状态,接口提供了一个对外的方法集合(往往代表一个完整的特性),并不包含具体的状态特性,类可以通过implements 实现该接口使得该类具有这个特性,这样类产生的对象也就具有了该特性

interface ICanFly{
	void takeoff();//起飞
	void landing();//降落
}
/**
说不定未来的车真的可以飞
**/
class FutureCar extends Car implements ICanFly{
	@Override
	void takeoff(){
		//TODO
	}
	@Override
	void landing(){
		//TODO
	}
}

//可以的话, 你自己也可以飞

什么是包

包可以理解为电脑上的文件夹,用于组织一些由关系的资源(图片,样式…),类,接口,脚本等

总结

持续更新中,刚刚开始
参考 Object-Oriented Programming Concepts

你可能感兴趣的:(JAVA基础)