java学习-初级入门-面向对象③-类与对象-类与对象的定义和使用1
今天学习类与对象。先大致解释一下类与对象的含义。
对象: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的更多相关文章
- java学习-初级入门-面向对象②-面向对象概述-面向对象程序设计
		
我们在 面向对象①中学习了,结构化程序设计. 今天我们一起学习面向对象程序设计. 学习面向对象程序设计就要了解,在面向对象中重要的知识点. 继承 . 多态 . 抽象 . 接口 我们会在接下 ...
 - java学习-初级入门-面向对象⑤-类与对象-类与对象的定义和使用3
		
这次我们要做一个日期类Date类 主要目的是 1. 熟悉-->构造不同参数的函数 2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符, ...
 - java学习-初级入门-面向对象⑥-类与对象-静态static
		
这次我们来学习静态(static) 知识点 1.静态方法只能调用静态变量 2.静态变量属于整个Class,会随着发生变化. 案例:定义一个自动增长的学生类. 题目要求: 定义一个学生类,除了姓名.性别 ...
 - java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2
		
我们继续学习类与对象,上一篇我们定义了 坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...
 - java学习-初级入门-面向对象①-面向对象概述-结构化程序设计
		
为了学习面向对象程序设计,今天我们先利用面向对象以前的知识,设计一个学生类. 要求进行结构化程序设计. 学生类: Student 要求:存储学生的基本信息(姓名.性别.学历层次和年级),实现学生信息的 ...
 - Java学习笔记之---面向对象
		
Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...
 - Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法
		
面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...
 - 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器
		
Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...
 - Java精选笔记_面向对象(慨念、类和对象)
		
面向对象概念 在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象. 相对于面向过程而言.是一种思想,强调的是功能的对象. 面向对象的本质:以类的方式组织代码, ...
 
随机推荐
- 2020年python学习进阶方向
			
相信很多友人在学习python过程都会遇到很多 虽然python入门很容易 但是难免会遇到瓶颈 遇到问题没人交流 很难提升 对此 给你们简单指点学习方向 1.认识python linux基本 ...
 - 4_5  追踪电子表格中的单元格(UVa512)(选做)
			
在电子表格中的数据都存储在单元格中,它是按行和列(R)(C).一些在电子表格上的操作可以应用于单个单元格(研发),而其他的可以应用于整个行或列.典型的单元操作包括插入和删除行或列和交换单元格内容.一些 ...
 - laravel qq邮件配置
 - Spring Boot JDBC 使用教程
			
总是要用到数据库的嘛,曾经我一度以为,写代码,编程就是搞数据库增删改查,甚至你设计一个系统,大部分时候在为如何设计关系型数据库努力,究其原因,是因为关系型数据库是逻辑的主要呈现. 这个系列,主要是对 ...
 - kafka connector
			
Kafka Connect 是一种用于在 Kafka 和其他系统之间可扩展的.可靠的的流式传输数据的工具.它使得能偶快速定义将大量数据集合移入和移除 kafka 连接器变得简单. kafka conn ...
 - 与英特尔分道扬镳,苹果的5G业务掉队了吗?
			
5G概念已经大热,越来越多的厂商推出相关产品,中国骄傲之华为不仅在5G通信标准制定方面参与感非常强,也先于竞争对手推出5G智能终端,连同三星/Vivo等也纷纷推出5G终端,而作为智能手机市场绝对的利润 ...
 - 「Luogu P5080 Tweetuzki 爱序列」
			
题目大意 给出一些数,需要求出 \(\frac{a_{i+1}}{3}=a_i\) 或 \(a_{i+1}=2 \times a_i\) 时最长的序列 \(a\). 分析 可以发现符合条件的序列 \( ...
 - [原]Java工程打包注意事项
			
注意事项(持续增加...): 如果Java工程中用到了注解,在用eclipse打jar包时需要注意一下,勾上“Add directory entries”,否则注解的类会注册不上
 - MySQL忘记密码如何重置
			
一]进入服务器下,我用的是centos版本 vim /etc/my.cnf 1 vim[二]找到mysqld的部分然后在下面添加上一句代码,意思是跳过密码直接进入,然后保存退出 skip-grant- ...
 - Unity表面着色器
			
表面着色器和之前无光照着色器不同,其中没有顶点着色器和片元着色器,而增加了光照函数: 接下写了一个求两个贴图的光照效果 两个贴图做插值运算: Shader "Custom/SurfaceSh ...