| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2387 人关注过本帖
标题:构造器该如何理解?
只看楼主 加入收藏
ilsoviet1917
Rank: 2
等 级:论坛游民
帖 子:103
专家分:26
注 册:2010-5-11
结帖率:84.21%
收藏
 问题点数:0 回复次数:2 
构造器该如何理解?
程序代码:
public class Point {
        double x, y;
        
        public Point() {
                System.out.println("这是无参构造器");
        }
        
        public Point(double _x, double _y){
                System.out.println("这是有参构造器");
                x = _x;
                y = _y;
        }
        
        public double getDistance(Point p) {
                double d = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
                return d;
        }
        
        public static void main(String[] args) {
                Point p = new Point();
                Point p1 = new Point(3.0, 4.0);
                Point origin = new Point(0, 0);
                System.out.println(p1.getDistance(origin));
        }
}


网上解释说,创建对象时系统会对这个对象的实例进行初始化,如果想改变这种初始化,就可以通过自定义构造器实现。现在有几个问题不明白:
1.
public class Point {
        double x, y;}
本身就有x和y,public Point(double _x, double _y)这一段有有啥意义呢?

2.public double getDistance(Point p)里面的Point p是public class Point还是public Point() 还是public Point(double _x, double _y)?
搜索更多相关主题的帖子: public double Point 构造 new 
2022-03-09 10:49
notime
Rank: 2
等 级:论坛游民
威 望:4
帖 子:17
专家分:61
注 册:2019-9-7
收藏
得分:0 
1,构造器就是造出一个类的实例。
public Point(double _x, double _y) 就是构造器,传入 _x,_y 两个参数,给 x,y 赋值

2.public double getDistance(Point p)里面的 Point p 是
public class Point,另一个实例
2022-03-19 18:12
萌新丶乐乐
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-3-21
收藏
得分:0 
构造方法
当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。
不管你是否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个默认构造方法,默认构造方法的访问修饰符和类的访问修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。
一旦你定义了自己的构造方法,默认构造方法就会失效。
2022-03-21 19:21
快速回复:构造器该如何理解?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027714 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved