今天学习类与对象。先大致解释一下类与对象的含义。

对象:object 有物体这一概念,一切皆对象(物体),对象由静态的属性和动态的行为组成。

比如说水杯:

水杯的静态属性:材质,容量,质量,颜色

动态的行为:装水,被用来喝水

 

:一组具有相同属性和行为的对象的抽象。

 杯子类: 水杯  保温杯

  车类:自行车   溜溜车

 

今天我们通过设计一个坐标类来实现类的设计:

 

案例:设计坐标类;

题目要求

设计坐标点的类,具有横纵坐标两个属性

具有初始化和计算两个点之间距离的方法。

解题思路:

1.创建一个Point类

2.定义point类的变量 坐标x , 坐标y 

3.构造初始化方法

4.计算两个点到点的距离 (d = √(x1-x2)²+(y1-y2)²)

程序代码:

Point类

1 public class Point {
 2     private  double x;  //成员变量
 3     private  double y;
 4 
 5     /**
 6      * 初始化方法,调用时用来传入横纵坐标的值。
 7      * @param x 横坐标
 8      * @param y 纵坐标
 9      */
10     public  void init(double x,double y){
11         this.x = x;
12         this.y = y;
13     }
14 
15     /**
16      * @param p 计算距离的两个点之一(因为这个类自己本身就是一个坐标,所以调用  类自己的距离函数  的时候,只需要加入要比较的坐标即可)
17      * @return 距离
18      */
19     public double distance(Point p){
20         return Math.sqrt(Math.pow((p.x-this.x),2)+Math.pow((p.y-this.y),2));  // 当前对象 p1.distance(p2))    this 表示的是 p1
21     }
22 
23     /**
24      * 输出坐标信息的函数(这个函数是拿来说明  this表示的是 自身 所代表的坐标 )
25      * @param p 坐标
26      */
27     public void print(Point p ){
28         System.out.println("this.x 为:"+this.x + ".   this.y 为:"+this.y);
29         System.out.println("p.x 为:"+p.x + "p.y 为:" +p.y);
30     }
31 }

测试代码:

Test类

1 public class Test {
 2     public static void main(String[] args) {
 3         Point p1 = new Point();
 4         Point p2 = new Point();
 5 
 6         p1.init(3,4);
 7         p2.init(0,0);
 8 
 9         p1.print(p2);
10         System.out.println("验证两点之间距离:"+p1.distance(p2));
11     }
12 }

 

 

有时候分不清this表示的到底是谁的值,编译器也为我们提供了方便。

java 教案 类和对象 java类和对象ppt_新手

当你双击this.x 的 x 的时候,发现跟类自身变量是一个。说明this表示的是类自己的x。   

而白色的x则表示 形式参数( double x) 的X。

运行结果

java 教案 类和对象 java类和对象ppt_类与对象_02

测试代码中我们求的是  p1.print(p2);     我们是用p1对象调用的函数,p1对象本身的坐标是(3,4)

这就说明了this的确是  表示 对象本身。

实验心得

今天学会了使用和构造函数,代码要保持规范。

命名是要遵守。    类名首字母要大写,变量小写,final常量全部大写,方法函数命名遵循驼峰命名法。

this 表示的对象本身,这个概念要理解,后面还会有新的名词,一不小心就会搞混乱。

如果你在这篇文章学到了东西,我会很开心。