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

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

比如说水杯:

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

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

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

杯子类: 水杯  牙杯  保温杯

车类:自行车  汽车   溜溜车

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

案例:设计坐标类;

题目要求

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

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

解题思路:

1.创建一个Point类

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

3.构造初始化方法

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

程序代码:

Point类

 public class Point {
private double x; //成员变量
private double y; /**
* 初始化方法,调用时用来传入横纵坐标的值。
* @param x 横坐标
* @param y 纵坐标
*/
public void init(double x,double y){
this.x = x;
this.y = y;
} /**
* @param p 计算距离的两个点之一(因为这个类自己本身就是一个坐标,所以调用 类自己的距离函数 的时候,只需要加入要比较的坐标即可)
* @return 距离
*/
public double distance(Point p){
return Math.sqrt(Math.pow((p.x-this.x),)+Math.pow((p.y-this.y),)); // 当前对象 p1.distance(p2)) this 表示的是 p1
} /**
* 输出坐标信息的函数(这个函数是拿来说明 this表示的是 自身 所代表的坐标 )
* @param p 坐标
*/
public void print(Point p ){
System.out.println("this.x 为:"+this.x + ". this.y 为:"+this.y);
System.out.println("p.x 为:"+p.x + "p.y 为:" +p.y);
}
}

测试代码:

Test类

 public class Test {
public static void main(String[] args) {
Point p1 = new Point();
Point p2 = new Point(); p1.init(,);
p2.init(,); p1.print(p2);
System.out.println("验证两点之间距离:"+p1.distance(p2));
}
}

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

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

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

运行结果

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

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

实验心得

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

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

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

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

java学习-初级入门-面向对象③-类与对象-类与对象的定义和使用1的更多相关文章

  1. java学习-初级入门-面向对象②-面向对象概述-面向对象程序设计

    我们在  面向对象①中学习了,结构化程序设计. 今天我们一起学习面向对象程序设计. 学习面向对象程序设计就要了解,在面向对象中重要的知识点. 继承  .  多态   . 抽象  . 接口 我们会在接下 ...

  2. java学习-初级入门-面向对象⑤-类与对象-类与对象的定义和使用3

    这次我们要做一个日期类Date类 主要目的是    1.  熟悉-->构造不同参数的函数  2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符, ...

  3. java学习-初级入门-面向对象⑥-类与对象-静态static

    这次我们来学习静态(static) 知识点 1.静态方法只能调用静态变量 2.静态变量属于整个Class,会随着发生变化. 案例:定义一个自动增长的学生类. 题目要求: 定义一个学生类,除了姓名.性别 ...

  4. java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2

    我们继续学习类与对象,上一篇我们定义了  坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...

  5. java学习-初级入门-面向对象①-面向对象概述-结构化程序设计

    为了学习面向对象程序设计,今天我们先利用面向对象以前的知识,设计一个学生类. 要求进行结构化程序设计. 学生类: Student 要求:存储学生的基本信息(姓名.性别.学历层次和年级),实现学生信息的 ...

  6. Java学习笔记之---面向对象

    Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...

  7. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  8. 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器

    Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...

  9. Java精选笔记_面向对象(慨念、类和对象)

    面向对象概念 在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象. 相对于面向过程而言.是一种思想,强调的是功能的对象. 面向对象的本质:以类的方式组织代码, ...

随机推荐

  1. Mongodb 分片原理

    1.主从mongodb 模式 类似,MySQL的主从配置  参照:https://blog.csdn.net/liusong0605/article/details/11551699 mongoDB有 ...

  2. JavaScript 闭包&基于闭包实现柯里化和bind

    闭包: 1 函数内声明了一个函数,并且将这个函数内部的函数返回到全局 2 将这个返回到全局的函数内中的函数存储到全局变量中 3 内部的函数调用了外部函数中的局部变量 闭包简述: 有权访问另一个函数局部 ...

  3. 吴裕雄 python 神经网络——TensorFlow 实现LeNet-5模型处理MNIST手写数据集

    import os import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import ...

  4. maven搭建ssm 完整过程

    https://blog.csdn.net/qq_28008917/article/details/79755935

  5. 对FPM 模块进行参数优化!

    Nginx 的 PHP 解析功能实现如果是交由 FPM 处理的,为了提高 PHP 的处理速度,可对FPM 模块进行参数跳转.FPM 优化参数:pm 使用哪种方式启动 fpm 进程,可以说 static ...

  6. 使用 Sandcastle Help File Builder 制作文档

    1.下载安装 Sandcastle 程序. http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=shfb& ...

  7. php 高级 PHP的垃圾回收机制

    PHP可以自动进行内存管理,清楚不再需要的对象.PHP使用了引用计数这种单纯的垃圾回收机制.每个对象都内含一个引用计数器,每个reference链接到对象,计数器加1,当reference离开生存空间 ...

  8. 【转】issue management in your test project

    What is Issue Management? Issue Management is the process to make others aware of the problem and th ...

  9. Spring SpringMVC 和 Springboot 的关系(转载)

    原文链接 spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc. spring mvc 是只是spring 处理web层请 ...

  10. python 基础之深浅拷贝

    深浅拷贝 s=[[1,2],'fgfgf','cx'] s3=s.copy() print(s) print(s3) 测试 D:\python\python.exe D:/untitled/dir/f ...