用费曼学习法教小姐姐学习Java面向对象

大家好,我是程序员青戈,一个被Bug耽误了才艺的程序员👦专注于Java领域的知识分享和技术交流,每天会给大家带来Java学习的干货教程📚

微信搜索公众号 Java学习指南,回复 面试 领取一线大厂面试题一套😋加号主微信 xia_qing2012,可以进技术交流学习群一起共同进步哦😊

故事锲子

话说这天,我在路上遇到3个人,巧了,都在书店门口排队买最近很畅销的那本《Java从入门到如土》。我决定上去搭讪一下。

:哈喽,三位同学,在买书呢?

三人同时翻来白眼:你瞎啊?

:(有点尴尬的挠了挠头)是这样的,我在搞一个小调研,我想问问你们为什么学习Java啊?

中年大叔:咳咳,我先来说说吧。那肯定为了生活,我要吃饭啊,学习Java肯定是指望着这玩意儿找个好工作啊,不说像大佬们那样月入10w吧,月入1w混个温饱总可以的吧。开玩笑,我上有80岁老母亲,下有嗷嗷待哺的奶娃娃,我一手代码,一手抱娃容易吗?我老婆总跟我吵架,说我加班太晚,说我周末不陪她,怀疑我外面有小三,说我钱没挣多少头发掉了一半,说我…(此处省略1万字吐槽)甚至背着我开始在外面跟产品经理勾搭了…为了我们的家,我只能装作没看见…我太难了!

说着说着,这哥们哽咽了…

我只能忙去安慰:额,好了好了,兄弟,生活很难,我懂你的辛苦!

戴耳机的小哥哥:哎哎,老哥,先别哭,我感觉没那么痛苦吧…我学Java完全是个人兴趣呢,我从高中就开始接触编程,到现在学会了C、C++、GO、Java、Python这些语言,感觉Java在服务器编程方面还是很优秀的,我自己的博客网站就是用Java搭的,哈哈,很方便也很稳定呢,现在日访问量已经破千了哦…

:哇,小哥,你好优秀啊,能不能带带我…

小哥:emmm…

踩滑板的小姐姐🍉:其实我是计算机专业的,我对开发语言不怎么会,也不怎么感冒,但是老师布置了作业,用Java做一个学生课程管理系统,这可难倒我了,我不会啊…我只能厚着脸皮去隔壁学校找学长指导指导我,话说学长真的很棒耶,声音好听,人也非常耐心,关键长得超帅的,哇…好喜欢!我以后的男朋友必须是学长这样的!

:呃…这位小姐姐,咱们是不是有点跑题了…

小姐姐🍉:(翻了个白眼)懒得理你,一看你就是屌丝

:好吧,那话说回来,各位都要学Java,那怎么学好Java?

大叔:(用T恤擦了擦眼角的泪痕)我觉得吧,是这样,我学Java不图学什么原理,什么设计模式,什么底层算法数据结构,我只求能尽快学会,让我能找个工资更高的工作。现在的产品经理天天吊我,搞我,动不动给我提需求,还上纲上线的,给我倒排时间,5天的开发量2天做完,还得兼职测试、运维,累死累活的上线了,出BUG锅都是我背着,我太难了…说完又哽咽了…

我只好慌忙再安慰大叔…

小哥哥:我感觉吧,Java是一门面向对象的语言,需要有面向对象的思维,Java里的对象完全可以映射我们的现实世界。一辆车就是一个实体类,我们叫Class Car,车有很多的属性,比如颜色、价格、长、宽、高、品牌等等,这些就构成了车的一个基类,用Java语言描述出来。然后我们通过 new Car() 的方式创建这个类的一个个对象,再去设置属性,比如颜色设置成白色、红色、绿色等等,这样每个对象就非常独立了。

我:嗯,说的有道理,小哥果然厉害。通过刚才小哥的描述,我总结了下小哥哥的学习方法。就好比我是一个小白,我想学习Java的面向对象,但是我不理解,那么我就从身边出发,先了解我们所处的世界中的元素,然后通过我们的世界去对照Java,理解Java里的类和对象,比如一个人就是一个对象 Person,然后人可以吃东西,就是 person有一个eat方法,吃什么就可以是一个参数类Food传递进来,food有名称等属性,可以看下代码的描述:

class Person {
	// 姓名
	private String name; 
	// 年龄
	private String age;
	// 住址
	private String address;

	
	private void eat(Food food) {
		System.out.println("吃食物:" + food.getName())
	}
}

/**
* food类
*/
class Food {
	private String name;
	...
	public String getName() {
		return this.name;
	}
}

小姐姐🍓:我好像懂了,面向对象就是把我们需要解决的问题从现实世界抽象成Java类,比如我想订外卖,那么就有我(顾客)和外卖两个类,我订外卖,就是Customer 里面有个order方法,参数是外卖。大概是这个样子的:

class Customer {
	// 姓名
	private String name; 
	// 年龄
	private String age;


	private void order(Waimai waimai) {
		System.out.println("我订了外卖:" + waimai.getName())
	}
}

/**
* 外卖类
*/
class Waimai {
	// 外卖名称
	private String name;
	// 价格
	private Double price;
	...
	public String getName() {
		return this.name;
	}
}

:哎,对对,就是这么理解的,面向对象其实在初学者看来有点抽象,难以理解,但是我们刚才这么一讨论,是不是概念清晰多了?

小姐姐🍒:嗯,确实懂了一点点…

我:哈哈,其实我们刚才讨论的这些呢,可以引用一个非常经典有效的学习方法,叫费曼学习法

大叔:(突然止住了哭泣)啥?什么东东?

费曼学习法 是一种【以教为学】的学习方式。你看刚才小哥哥给我们讲面向对象,在把我们将明白的同时他也对面向对象理解的非常深入了。这样的一个学习方法呢能够帮助你提高知识的吸收效率,真正理解并学会运用知识。

这个学习方法其实很简单,就是验证你是否真正掌握一个知识,看你能否用直白浅显的语言把复杂深奥的问题和知识讲清楚

大叔:哦,显得很不感兴趣…(继续伤心痛苦地抽泣…)

小哥哥:这样啊,哈哈,其实我自己没意识到这个学习方法,我就是按照我自己的理解说出来了,嘿嘿…

:哈哈,每天一个Java小技巧,你学废了吗?



感谢大家的阅读,创作不易,能否请您小手点一点下方的 一键三连 支持一下作者呢😊

最后送诸位一句话:但行好事,莫问前程。再见~

  • 16
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员青戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值