Java基础之构造方法及其应用
- 构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法。
- 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
- 当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
- 构造方法分为两种:无参构造方法 有参构造方法
- 类中必定有构造方法,若不写,系统自动添加无参构造。(接口不能被实例化,所以接口中没有构造方法。)
实例演示:计算坐标点的距离
实体类Point代码:
public class Point {
// 点的属性 横纵坐标
int x;
int y;
// 默认无参构造器
public Point(){
System.out.println("默认构造。");
}
// 有参构造1
public Point(int a,int b){
System.out.println("有参构造。");
// 给对象赋值
x = a;
y = b;
}
// 有参构造2(重载)
public Point(int a){
// System.out.println();
this(a,a); // 重载 调用上面的有参构造1(此语法专门用来构造方法间调用,必须写在构造方法的第一行)
}
/**
* 点距离的计算方法
* 参数分别为:无参 点坐标 点对象
* 方法重载
*/
public double distance(){ // 无参
return Math.sqrt(Math.pow(this.x, 2) + Math.pow(this.y, 2)); // 到原点的距离
}
// 到某个点的距离
public double distance(int a, int b){ // 参数为点坐标
return Math.sqrt(Math.pow(this.x-a, 2)+Math.pow(this.y-b, 2));
}
public double distance(Point p){ // 参数为点对象
return distance(p.x, p.y);
}
}
Demo:
public class PointDemo {
public static void main(String[] args) {
Point p1 = new Point(3,2);
System.out.println("p1的坐标是:" + "(" + p1.x + "," + p1.y + ")");
Point p2 = new Point(5);
System.out.println("p2的坐标是:" + "(" + p2.x + "," + p2.y + ")");
/**
* 求点到点的距离
*/
Point p = new Point(6,8);
System.out.println("到原点的距离为:" + p.distance()); // 到原点的距离
System.out.println("到另一个点的距离为:" + p.distance(3, 3)); // 到(3,3)的距离
System.out.println("到某个点对象的距离为:" + p.distance(p2)); // 到点对象p2的距离
}
}
输出为:
有参构造。
p1的坐标是:(3,2)
有参构造。
p2的坐标是:(5,5)
有参构造。
到原点的距离为:10.0
到另一个点的距离为:5.830951894845301
到某个点对象的距离为:3.1622776601683795
Java基础之构造方法及其应用的更多相关文章
- Java基础—String构造方法
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...
- java基础知识 构造方法
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面 ...
- Java基础-8构造方法
一).构造方法: 在之前我们提到对象的概念以及对象的实例化等,在这里简单回顾下: Man man = new Man(); 语句创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对 ...
- java基础(12):构造方法、this、super
1. 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方 ...
- 【BigData】Java基础_构造方法的使用
需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test. ...
- 【Java基础】构造方法调用构造方法
从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) // ...
- Java基础 - 面向对象 - 构造方法
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每当类实例化一个对象时,类都会自动调用构造方法. 构造方法的特点: 构 ...
- 【Java基础】构造方法 static 块 {}块 执行顺序
package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
随机推荐
- 曼哈顿距离(坐标投影距离之和)d(i,j)=|X1-X2|+|Y1-Y2|.
曼哈顿距离(坐标投影距离之和)d(i,j)=|X1-X2|+|Y1-Y2|. 我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里德空间的固定直角坐标系上两点所形成的线段对轴产生 ...
- C#在WinForm中使用WebKit传递js对象实现与网页交互的方法
这篇文章主要介绍了C#在WinForm中使用WebKit传递js对象实现与网页交互的方法,涉及针对WebBroswer控件及WebKit控件的相关使用技巧,需要的朋友可以参考下 本文实例讲述了C#在W ...
- shell脚本-循环选择语句
shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...
- An problem about date 根据年月日计算 星期几
/W = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7(1.2月需要看作上一年的13.14月) #include<stdio.h> #include& ...
- hdu2029
http://acm.hdu.edu.cn/showproblem.php?pid=2029 #include<stdio.h> #include<string.h> #inc ...
- python常见的加密方式
1.前言 我们所说的加密方式都是对二进制编码的格式进行加密,对应到python中,则是我妈们的bytes. 所以当我们在Python中进行加密操作的时候,要确保我们的操作是bytes,否则就会报错. ...
- 我的github教程
这篇文章记录个人常用的一些命令,和记不住的一些命令. 安装 在 Windows 上安装 Git ,有个叫做 msysGit 的项目提供了安装包: http://msysgit.github.io/ 完 ...
- P1257 平面上的最接近点对
题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的 输入输出格式 输入格式: 第一行:n:2≤n≤200000 接下来n行:每行两个实数:x y, ...
- drupal 8——在CKEditor中导入video media时添加caption会导致video缩小至消失
在CKEditor中,我点击media browser,选择video型的media,并在caption中输入video的名字.当我保存后发现在前台页面的video消失了,只留下video的名字,点击 ...
- [Android]异常5-throwable:java.lang.OutOfMemoryError: pthread_create
背景:线程初始化耗时任务 异常原因: 可能一>多个new Thread()嵌套 解决办法有: 解决一>使用Handler分离new Thread()嵌套 注: 06-30 09:12:26 ...