摘要: 继续学习: 4.偏头痛杨的Java入门教学系列之初级面向对象篇

继续学习:
4.偏头痛杨的Java入门教学系列之初级面向对象篇 
分割线中为原文的摘录:


面向过程编程&面向对象编程

从面向过程到面向对象,不仅仅是编程方式的改变,更重要的是思维方式的改变。

面向过程编程

按照顺序执行的一系列指令,通常是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,最后一个一个依次调用函数来解决。

面向对象编程

从不同的角度来看待计算机程序,它注重的是计算机所完成的任务,而非处理方式。
从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式来思考问题,把问题中的事物分解为为系统中的对象,给对象赋予相应的属性和行为,通过多个对象的相互协调来解决问题,对象是系统的基本构成单位。

传统的C语言属于面向过程编程,Java语言属于面向对象编程。

ATM取款机程序的例子

面向过程编程:

  1. 输入密码,系统判断是否正确,如正确,进入取款界面,如错误,提示重新输入。
  2. 进入取款界面,输入取款金额,系统判断余额是否足够,如不足,提示;如足够,点钞。
  3. 吐出钞票,打印票据。

面向对象编程:
根据要解决的问题,可以抽象出如下对象:客户、银行卡、现金、票据等。
这些对象没有先后顺序,共同作用才构成了整个系统。
我们只要用代码设计出这几个类型的对象,然后让他们互相通信、传递消息就可以完成系统功能。

猪八戒吃西瓜的例子

面向过程编程:吃(猪八戒,西瓜)
面向对象编程:猪八戒.吃(西瓜)

作业

创建一个人类,该类需要有定义:
名字、体重、年龄三种属性(数据类型分别为:String,int,int),
还要定义吃饭、睡觉、打豆豆三种方法。
类中需要定义有参构造,需要通过有参构造把类中的三种属性初始化。

三种方法的规则:

  1. 吃饭:需要传递参数,并输出"xxx在吃饭"
  2. 睡觉:通过前面的有参构造初始化,输出"xxx在睡觉",xxx为名字(对象的属性),方法不用定义形参。
  3. 打豆豆: 通过前面的有参构造初始化,需要返回给调用者"xxx的体重是a,年龄是b",并在调用处输出。

注意:

  1. xxx、a、b均为动态的,不是写死在代码里的。
  2. 输出的写法为:System.out.println("你好哇,这里是作业demo示例哟~~~");

需要在main方法中实例化三个人类的对象,分别设置与输出三个属性(名字、体重、年龄),并调用三个方法,其中把打豆豆方法的返回值打印出来。


我的解答

ps:Java初学者,如果你是高手就不用看(xiao)了(hua)(ノへ ̄、)

package test;public class People {String name;int weight;int age;public People() {}public People(String name,int weight,int age) {this.name=name;this.weight=weight;this.age=age;}public void eat(String food) {System.out.println(name+"is eating"+food+"now !");}public void sleep() {System.out.println(name+"is sleeping now!");}public String hitdoudou() {return name+"的体重是"+weight+",年龄是"+age;}
}
package test;public class Test {public static void main(String[] args) {People p1 = new People("Jack",152,21);p1.eat("apple");p1.sleep();String hit = p1.hitdoudou();System.out.println(hit);}}

输出结果:

Jackis eatingapplenow !
Jackis sleeping now!
Jack的体重是152,年龄是21

原文链接

本文为云栖社区原创内容,未经允许不得转载。

Java小白进阶笔记(3)-初级面向对象相关推荐

  1. Java小白进阶笔记(5)-进阶面向对象

    继续学习: 7.偏头痛杨的Java入门教学系列之进阶面向对象篇 上Java课的时候没弄明白接口,今天终于明白了(但没使用过,还停在理论的程度,可能理解也不准确,以后学通了会回来补充:)如果你刚学Jav ...

  2. Java小白进阶笔记(2)-变量和数据类型

    摘要: 复习Java知识,主要是一边看**偏头痛杨**的博客,一边完成博主布置的任务.这是看[2.偏头痛杨的Java入门教学系列之变量&数据类型篇][1] 的作业 复习Java知识,主要是一边 ...

  3. Java小白进阶笔记(1)-重新认识Java

    摘要: 这是偏头痛杨的第一篇原文链接,其中,在系列的第二篇开头作者布置了十道题,下面是我的回答(大多是作者的文章摘录) 重新开始学习Java了,这也是为了以后找工作考虑.热爱的机器学习就先放一放了,作 ...

  4. Java语言基础(Java自我进阶笔记二)

    Java语言基础(Java自我进阶笔记二) 一. 什么是Java 的主类结构? 1. #mermaid-svg-xWTL2A8kDyyRPexH .label{font-family:'trebuch ...

  5. Java入门教程笔记07(面向对象基础)

    目录 构造器(构造方法) 目的: 作用: 构造器的分类 注意事项 this关键字 案例 封装: 封装的实现步骤 案例 JavaBean(实体类) 标准JavaBean须满足如下要求: 成员变量和局部变 ...

  6. 泛型及其使用、Stream的方法(Java小白进阶day17)

    泛型 java泛型设计原则:保证编译时不出错,运行时就不会出现ClassCastException 1.泛型类 在类上定义的泛型,在方法中也可使用 2.泛型接口 interface DemoInter ...

  7. Python小白学习笔记六 (面向对象 1 )

    面向对象 Object Oriented 概述 面向过程 1.分析出解决问题的步骤,然后逐步实现. 例如:婚礼筹办 – 发请柬(选照片.措词.制作) – 宴席(场地.找厨师.准备桌椅餐具.计划菜品.购 ...

  8. 前端小白进阶笔记之多级菜单分享

    css技术分享之二级.三级下拉菜单的制作: 首先看一下网页中的三级下拉菜单: 接下来自己动手试一试吧! 制作多级下拉菜单 在css中我们需要用到: hover选择器用于选择鼠标指针浮动在上面的元素 d ...

  9. Java基础到Java进阶——Java小白的历练之路------从0到1,开卷!

    Java小白的历练之路------从0到1 title: Java Essay date: 2022-09-07 08:58:32 tags: Java notes 写在前面: 免责声明:本笔记来源自 ...

最新文章

  1. GPT-3到来,程序员会被AI取代吗?
  2. 量子纠缠为什么不能用于瞬时通讯?
  3. iOS从零开始学习直播之音频2.后台播放和在线播放
  4. map初始化_需要掌握的Go基础之map:文末附面试题一道
  5. 【译】表变量和临时表的比较
  6. 中石油训练赛 - Russian Dolls on the Christmas Tree(树上启发式合并/主席树)
  7. leetcode 559. N 叉树的最大深度(Java版,N叉树的深度优先搜索)
  8. C语言编译流程:预处理、编译、汇编、链接
  9. java运算符 —(5)
  10. matlab snr eb n0,snr ber Eb/N0之间的区别与联系
  11. date加一天php,PHP时间日期操作增减(date strtotime) 加一天 加一月
  12. 某程序员9点离岗被主管罚款200,写bug扣光主管年终奖?
  13. 统一建模语言UML轻松入门之用例
  14. mysql中sysdate函数转字符串_【转】MySQL:日期函数、时间函数总结(MySQL 5.X)
  15. 【测试基础】Linux文本编辑vi命令
  16. web前端仿网易云官网
  17. 解决戴尔笔记本电脑插上耳机没反应,要重启才能识别
  18. ffmpeg将mp4转为m4a,m4a转mp3,mp3转ogg
  19. 实时头发-面部皮肤分割与人脸肤色分类
  20. 6s信号时有有时无服务器,苹果iPhone6s信号弱或无服务解决方法

热门文章

  1. python设计模式免费_python 设计模式
  2. java icon动态变换,以编程方式自动更改ImageIcon [Java]
  3. 希捷银河声音大_每日观影之银河守门员( )
  4. 用java做一个截图工具_Java制作屏幕截图软件(还可以保存到剪切板内)
  5. 3 vue 线条箭头_线条眉要如何处理才能更自然?
  6. 中国首富们三十而立的年纪都在干什么
  7. docker建多个mysql_《容器化系列二》利用Docker容器化技术安装多个mysql
  8. 计算机网络-信道复用技术
  9. C语言之strstr函数
  10. Kafka JMX监控报错 Failed to get broker metrics for BrokerIdentity(128,192.168.2.128,9999,true,false,Map