前言
初入java
时,总是流传着这样一句话万物皆对象
,一直没完全理解其中含义,懵懵懂懂的入了行,CRUD
干就完了。
然而一入编程深似海,回首已是暮年时,今以此篇直面对象
。
正文
面向对象具体是指什么
单说面向对象,是一种思想,具体指面向对象编程风格
。
主流的编程风格有三种,分别是面向过程
、面向对象
和函数式编程
,面向对象是其中之一。
而java
就是一种面向对象编程语言,是我们实现程序设计中重要的工具,它满足面向对象编程范式,支持类或对象语法机制且实现了四大特性封装、抽象、继承、多态。
理解面向对象
万物皆对象,万物皆可归类
,就是说在面向对象的思想里认为只要是存在的事物,都可以当做一个实例对象,并能找到一种或多种属于它的类。
- 比如一只小狗作为对象,可以属于宠物类,动物类;
- 一个人作为对象,可以属于学生类,员工类,人类;
- 空气作为对象,可以属于空气类;
- 地球作为对象,可以属于行星类;
但类是抽象的,具体怎么去定义,要看你从哪个角度去思考形容它,以及你的程序想实现的目标:
- 如果你想实现一个学校人员管理系统,你以人作为对象,则归属为学生类更具体;
- 如果你想实现一个公司员工考勤系统,你以人作为对象,则归属为员工类更贴合;
类与对象的关系
类
是对某一类具有共同特征(属性)/行为(方法)的事物的描述;对象
是类的具体实例,代表现实世界中真实存在的个体。
但是先有类还是先有对象啊?
从现实生活去看,是先有对象后有类,因为是现有了生活中实实在在的事物,我们才能去归类对它进行描述;
从编程角度去看,是先有类后有对象,因为有了具体对某一个事物抽象的类,我们才能创建对象;
下面我们用代码体现一下,以学生类和员工类举例:
java
/**
* 学生类
*/
public class Student {
/**
* 属性(姓名,年龄,班级)
*/
private String name;
private Integer age;
private String className;
/**
* 构造方法
*/
public Student(String name, Integer age, String className) {
this.name = name;
this.age = age;
this.className = className;
}
public void read(){
System.out.println(this.name+"在读书");
}
public void write(){
System.out.println(this.name+"在写字");
}
}
java
/**
* 员工类
*/
public class Employee {
/**
* 属性(姓名,年龄,部门)
*/
private String name;
private Integer age;
private String department;
/**
* 构造方法
*/
public Employee(String name, Integer age, String department) {
this.name = name;
this.age = age;
this.department = department;
}
public void toWork(){
System.out.println(this.name+"上班啦");
}
public void offWork(){
System.out.println(this.name+"下班了");
}
}
对比可以看到我们定义学生类时有属性班级
,定义员工时有属性部门
,因为我们抽象出的类结合实际会定义不同的属性;
测试运行:
java
public class Test {
public static void main(String[] args) {
//通过new对象类创建对象实例并设置属性
Student xiaoming = new Student("小明",8,"三年级一班");
Student xiaohong = new Student("小红",9,"四年级二班");
//调用对象方法
xiaoming.read();
xiaohong.write();
}
}
打印输出:
text
小明在读书
小红在写字
总结
你理解对象了吗,以上便是个人对面向对象的总结归纳,明白面向对象之后,后续会跟着讲解四大特性封装、抽象、继承、多态
在项目中的实际运用。
道友请留步,求赞+收藏,关注不迷路!!!