Java小白进阶笔记(3)-初级面向对象
继续学习:
4.偏头痛杨的Java入门教学系列之初级面向对象篇
分割线中为原文的摘录:
面向过程编程&面向对象编程
从面向过程到面向对象,不仅仅是编程方式的改变,更重要的是思维方式的改变。
面向过程编程
按照顺序执行的一系列指令,通常是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,最后一个一个依次调用函数来解决。
面向对象编程
从不同的角度来看待计算机程序,它注重的是计算机所完成的任务,而非处理方式。
从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式来思考问题,把问题中的事物分解为为系统中的对象,给对象赋予相应的属性和行为,通过多个对象的相互协调来解决问题,对象是系统的基本构成单位。
传统的C语言属于面向过程编程,Java语言属于面向对象编程。
ATM取款机程序的例子
面向过程编程:
- 输入密码,系统判断是否正确,如正确,进入取款界面,如错误,提示重新输入。
- 进入取款界面,输入取款金额,系统判断余额是否足够,如不足,提示;如足够,点钞。
- 吐出钞票,打印票据。
面向对象编程:
根据要解决的问题,可以抽象出如下对象:客户、银行卡、现金、票据等。
这些对象没有先后顺序,共同作用才构成了整个系统。
我们只要用代码设计出这几个类型的对象,然后让他们互相通信、传递消息就可以完成系统功能。
猪八戒吃西瓜的例子
面向过程编程:吃(猪八戒,西瓜)
面向对象编程:猪八戒.吃(西瓜)
作业
创建一个人类,该类需要有定义:
名字、体重、年龄三种属性(数据类型分别为:String,int,int),
还要定义吃饭、睡觉、打豆豆三种方法。
类中需要定义有参构造,需要通过有参构造把类中的三种属性初始化。
三种方法的规则:
- 吃饭:需要传递参数,并输出"xxx在吃饭"
- 睡觉:通过前面的有参构造初始化,输出"xxx在睡觉",xxx为名字(对象的属性),方法不用定义形参。
- 打豆豆: 通过前面的有参构造初始化,需要返回给调用者"xxx的体重是a,年龄是b",并在调用处输出。
注意:
- xxx、a、b均为动态的,不是写死在代码里的。
- 输出的写法为: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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaScript的数组知识案例之随机点名器
本次分享JavaScript主要知识点涉及到for循环、if选择结构判断语句、数组的定义、定时器、清除定时器、日期对象的使用。 执行后效果图: 思路: 1.网页结构搭建: HTML 2.网页布局美化: CSS 3.随机功能实现: JavaScript 分析后案例思路图: 编码工作: Html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>基于JavaScript的随机点名工具</title> </head> <body> <h1>王者荣耀英雄随机点名系统</h1> <span id="span"></span> <div class="box" id="box"></div> <input type="button" id="btn" value="点名"/> </body> </html> Css...
- 下一篇
Android Studio中如何支持使用Lambda表达式
Java8引入了lambda表达式,Lambda 表达式”(lambda expression)是一个匿名函数,本质上就是可以传递给其他函数的一小段代码。 下面来看一下如何让自己的项目支持使用lambda表达式,以达到简化代码的目的。 先来举个栗子,看看我们平常写点击事件是如何写的 普通写法: tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //处理逻辑 } }); Lambda表达式写法 tv.setOnClickListener(v->Toast.makeText(this,"this is lambda",Toast.LENGTH_SHORT).show()); 是不是代码变得简洁了很多。 下面就介绍一下使用Android studio 3.0.1新建项目,配置支持Lambda表达式。 gradle android插件版本为:classpath 'com.android.tools.build:gradle:3.0.1' 可能有以下三种情形:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程