前言
今天这篇博客主要就是讲解一些老师给用最简单的例子来讲解怎样用面向对象思想来思考一个题,其中也包含封装以及构造方法,小白会用最简单例子来告诉大家((~ ̄▽ ̄)~ 也是老师讲解题目时的举例)
面向对象思想
在老师讲解之前呢,我只知道面向对象思想大概意思就是写出这个对象的类然后在里面写有关这个对象的行为的方法,然后再测试里面创建对象就是一个面向对象思想题目的解法。但是有时候自己的思想会搞混,复杂化,会突然走神不知道自己写的是什么为什么这样写,下面小白用例题(是作业中的题目)来给大家讲解一下老师的简单思路,很好理解,而且后续不会自己思想矛盾。
以人为例子,人会吃喝玩乐,人有性格、性别、身高、外貌,那么我们可以发现,人在这句话中充当着 “类” 的角色,吃喝玩乐是人的行为,是动态的,在类中我们会写出吃喝玩乐的 “方法”,而人的性格、性别、身高等等静态行为是人本身有的,而不是它的动态行为,所以性格、性格等静态描述在这句话中充当着 “属性” 这个角色。
例题们
在知道这种简单的理解方法前,小白做题都是照葫芦画瓢的形式,就只是 private 然后 写出题目中的属性,然后写 无参有参方法,然后挨个挨个写 get、set方法,最后 测试中创建对象,对象调用方法或者属性,也可以有参方法里直接赋值。
我们可以用上面易于理解的方式来看其他的题目,类的动态是方法,类的静态是属性,在这些想法的描述下,我们来看这道题目。
定义一个类,用于描述坐标点
0 — — — — — — >X
|
|
| P(X,Y)
|
|
Y
(1)具有计算当前点到原点距离的功能
(2)求到任意一点(m,n)的距离
(3)求到任意一点(Point p)的距离
(4)具有坐标点显示功能,显示格式(x,y)
(5)提供无参的构造器和一个有参的构造器
这是一个描述点坐标的题目,它题目中并没有明确的写出哪些是给出的属性,所以我们只能自己思考题意。
1. 题目的大概意思就是让我们创建一个Point类,也就是一个“描述点”的类。
2. 我们观察到题目中关于点的静态的属性类的就是横纵坐标,所以我们把这两个属性先定义上,因为这一关是关于封装的内容,所以我们可以private上。
3. 看到这些题目第一眼根据我们的初高中数学知识就知道我们需要用到勾股定理,计算点P到原点的距离,那么我们不知道Java中Math的相关内容,我们就直接搜索菜鸟教程里面的内容,找到是否有计算平方以及平方根的方法。
sqrt() 方法用于返回参数的算术平方根。
Math.sqrt(x)
pow() 方法用于返回第一个参数的第二个参数次方。
Math.pow(x, y)
4. 我们找到了计算平方以及平方根的方法,那么我们就可以写出计算距离的方法
5. 需要注意的是,平方的公式Math.pow(x,y)其中x是参数,y是幂次
public class Point {
private int x = 0;
private int y =