死磕Java之5个what揭开向对象核心
作者:互联网
文章目录
- 一、What ls an Object?(什么是对象?)
- 二、What ls a Class?(什么是类?)
- 三、What ls Inheritance?(什么是继承?)
- 四、What ls a Interface?(什么是接口)
- 五、What ls a Package?(什么是包?)
一、What ls an Object?(什么是对象?)
别人问你什么是对象,你怎么回答?(闭上眼想象一下,当你问一个外行人:什么是对象。然后他或者她说:对象是我的男/女朋友,哈哈)
对象是具有相关状态和行为的。用相应的手段描述日常生活中的现实世界。
有一个很耳熟或者很眼熟的五个字:万物皆对象
那么万物皆对象的来历什么?我谈谈我的看法吧。
谈万物皆对象之前,咱们先看一看万物复苏这个成语:
万物复苏:
意思:指世间万物都恢复了往日的生机。
扩展资料
【词语】:万物复苏
【读音】:wàn wù fù sū
【解释】:万物,宇宙间的一切事物。复苏,苏醒;恢复生机。指世间万物都恢复了往日的生机。
【造句】:
①这是万物复苏的时节。
②随着春天的到来,万物复苏了。
③春回大地,万物复苏,所有生命都焕发出青春。
④这一时间更为合理,因为春天是万物复苏、万象更新的时节。
⑤春天了,万物复苏,心里的躁动也隐隐作痛起来。
⑥春天是一个美丽的季节,我喜欢春天,因为在春天万物复苏,景色十分美丽。
【出处】:
(1)《易·乾》:“大哉乾元,万物资始。”
(2)日将暮,取儿藁葬。近抚之,气息惙然。喜置榻上,半夜复苏。——清· 蒲松龄《聊斋志异·促织》
回到正题聊聊万物皆对象:
可以看到万物就是宇宙间的一切事物
那么万物皆对象,就是:宇宙间得一切事物都是对象喽。
你的衣食住行,吃的、喝的、用的,你的四周一切都是物品。
不相信的话,你如果在家环顾四周,你会发现周围的桌子、沙发、电视机、车、宠物、还有爸爸、妈妈等。
如果你站在大街上,会看到:男人和女人,而且头发各异、各种体型、各种头发颜色不同的人。
当然了,这些都可以统称为现实世界中的对象,而且都有共同的两个特征:它/她/他们具有的状态
和行为
。
例如:宠物狗的状态(名字、颜色、品种、饥饿程度)和行为(叫、走、摇尾巴、吃等);
如果你能很快的识别现实世界对象的状态和行为,那么面向对象的程序设计思想是很方便理解的。
二、What ls a Class?(什么是类?)
在现实世界中,有很多共同点的个体,例如:各种品牌的自行车,人(男人和女人,不同国家的人)等。
拿人来说,人分为男性和女性,如果你非要说还有第三种性别的人的话,我也不跟你犟嘴了。
人都有头发、嘴、鼻子、手、胳膊;
人都会吃喝拉撒睡、玩、学习、走路、等等。
那就可以把有什么抽象出来为状态;
把会什么抽象出来为动作;
可以编写为一下代码:
public class Person {
private String name;//姓名
private double height;//身高
private double weight;//体重
private String sex;//性别
private int age;//年龄
private String school;//学校
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//获取个人资料
public void getPersonInfomation(){
System.out.println("【"+getName()+"】是【"+getSex()+"】生,今年【"+getAge()+"】岁了,体重【"+getWeight()+"】,身高【"+getHeight()+"】,在【"+getSchool()+"】上学");
}
}
含有main方法的测试类:
public class PersonTest {
public static void main(String[] args) {
Person xiaoming = new Person();
xiaoming.setName("小明");
xiaoming.setAge(22);
xiaoming.setSex("男");
xiaoming.setHeight(175);
xiaoming.setWeight(113);
xiaoming.setSchool("山东建筑大学");
Person xiaohong = new Person();
xiaohong.setName("小红");
xiaohong.setAge(21);
xiaohong.setSex("女");
xiaohong.setHeight(169);
xiaohong.setWeight(95);
xiaohong.setSchool("山东建筑大学");
xiaoming.getPersonInfomation();
xiaohong.getPersonInfomation();
}
}
运行结果:
【小明】是【男】生,今年【22】岁了,体重【113.0】,身高【175.0】,在【山东建筑大学】上学
【小红】是【女】生,今年【21】岁了,体重【95.0】,身高【169.0】,在【山东建筑大学】上学
三、What ls Inheritance?(什么是继承?)
不同的种类的对象通常之间有一定的共同点。
像人和动物,都有鼻子、嘴巴,只是个别的不同,动物有毛发,而人是头发。
那么就可以抽取共同点。
共同点:
//共同点
public class PersonAndDogCommon {
private String name;//姓名
private double height;//身高
private double weight;//体重
private String sex;//性别
private int age;//年龄
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
人:
public class Person extends PersonAndDogCommon{
private String school;//学校
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
狗:
//狗
public class Dog extends PersonAndDogCommon{
private String dogHome;//宠物的家
public String getDogHome() {
return dogHome;
}
public void setDogHome(String dogHome) {
this.dogHome = dogHome;
}
}
四、What ls a Interface?(什么是接口)
接口是与外界交互的接口
例如:电脑的USB接口,手机的耳机孔,充电孔,手机与电脑关机与关机键这些都可以看做为接口。
下面以手机为例:手机的音量(加音量、减音量、开机、关机)
public interface PhoneI {
public int addTheVolume(int volume);//加音量
public int reduceTheVolume(int volume);//加音量
public boolean startPhone(boolean status);//开机关机
}
public class Phone implements PhoneI {
private int volume;//音量
private boolean status;//开关机状态
@Override
public int addTheVolume(int volume) {
return (this.volume + this.volume + volume);
}
@Override
public int reduceTheVolume(int volume) {
return (this.volume = this.volume - volume);
}
@Override
public boolean startPhone(boolean status) {
return (this.status=!status);
}
}
五、What ls a Package?(什么是包?)
一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。
以下是一些 Java 中的包:
- java.lang-打包基础的类
- java.io-包含输入输出功能的函数
开发者可以自己把一组类和接口等打包,并定义自己的包。而且在实际开发中这样做是值得提倡的,当你自己完成类的实现之后,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注释等是相关的。
由于包创建了新的命名空间(namespace),所以不会跟其他包中的任何名字产生命名冲突。使用包这种机制,更容易实现访问控制,并且让定位相关类更加简单。
例如:
标签:what,return,String,int,void,private,Java,public,揭开 来源: https://blog.csdn.net/qq_17623363/article/details/104878559