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 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
随机推荐
- Android开发常用框架汇总
作为一名程序猿,好的工具会让你在搬运工的道路上越走越远.以下框架是AC在开发过程中经常会使用到的一些好的框架.列在这里做一个小小的总结,包含但不限于此. 响应式编程 RxJava https://gi ...
- Scala 方法接受变参
def Parametron(strings:String*): Unit ={ strings.foreach(x=>{ println(x) ") println(s"* ...
- poj3264Balanced Lineup(倍增ST表)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 52328 Accepted: 24551 ...
- $tsinsenA1067$
\(problem\) 这种题目需要一个定理 \(a[1]+a[2]+a[3]+a[4]...=(a[1]%mod)+...\) 本人出奇的懒 然后 动态规划?(恰似枚举) #include < ...
- mysql在linux下的安装(5.7版本以后)
1.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组. ①groupadd mysql ②useradd -r -g mysql mysql 2.将二进制文件解压到指定的 ...
- 涨知识III - 百度2016校园招聘——移动软件研发工程师
1.列关于线程调度的叙述中,错误的是(). 正确答案 :BE A调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会 B调用线程的yeild()方法,只会使与当前线程相同优先级的线 ...
- java.net.URISyntaxException: Illegal character in query
java使用httpclient爬取一个网站的时候,请求:String url3="http://sh.58.com/ershoufang/33562546149042x.shtml?amp ...
- 更新换代之requests库
好久不更新博客了... 之前的博文都是通过urllib2进行http访问,接下来我要说一个利器啊!requests模块,无法用语言对他进行赞扬了,需要的,有兴趣的,可以去了解下,移步官方中文文档: R ...
- jQuery五屏轮播手风琴切换代码
jQuery五屏轮播手风琴切换代码 在线演示本地下载
- 支付宝小程序日期选择组件datePicker封装
github 地址 https://github.com/iocool/antminDatePicker 最近在做支付宝小程序(以下简称小程序)开发,发现小程序的日期选择组件很不好用,比如安卓和IOS ...