仔细看private与public的区别

**

private与public的区别

**大家刚开始学习,有时候不明白我们private与public的区别,这两个东西一旦写错了就会造成后续无法访问的问题。

首先,我们先了解一下两者的涵义:

1.private 私有的
2. .public 公共的
可以从字面上看出来一个适用范围广,一个适用范围小

两者的区别

1.关键字private是默认访问级别,并且在所有其他访问级别中是最严格的。它给予一个类型或者类型成员最小的权限。私有成员仅仅在声明其的类体中可以被访问。
private:声明私有类,私有类自己的类可以使用(只能本类之中使用),其它类不可使用。

2.public:关键字public是所有访问级别中最自由地,没有任何访问限制。公共成员的访问不仅可以来自外部,也可以来自内部,并且可以自由访问定义在类体内或者体外的任何成员。
public:声明公共类,公共类其他类可以调用 (其它类中也可以调用)

b 在这里插入图片描述
图片中举的例子,前三个其他类是访问不到的,其他类访问找不到
后三个其他类就可以访问到,因为它是公共的。

在这里插入图片描述

  • 18
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完善后的代码如下: ``` public class Test{ public static void main(String[] args){ Point pt1=new Point(12,24,36); Point pt2=new Point(12,24,36); System.out.println("pt1:"+pt1); System.out.println("pt1.equals(pt2):"+ pt1.equals(pt2)); } } class Point{ private double x; private double y; private double z; public Point(){} public Point(double x,double y,double z){ this.x=x; this.y=y; this.z=z; } public double getX(){return this.x;} public void setX(double x){this.x=x;} public double getY(){return this.y;} public void setY(double y){this.y=y;} public double getZ(){return this.z;} public void setZ(double z){this.z=z;} @Override public String toString() { return "Point [x=" + x + ", y=" + y + ", z=" + z + "]"; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Point other = (Point) obj; if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x)) return false; if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y)) return false; if (Double.doubleToLongBits(z) != Double.doubleToLongBits(other.z)) return false; return true; } } ``` 输出结果为: ``` pt1:Point [x=12.0, y=24.0, z=36.0] pt1.equals(pt2):true ``` 其中,Point中覆盖了Object的toString()和equals()方法,toString()方法返回一个字符串,表示该点的x、y、z坐标值,equals()方法判断两个Point对象是否相等,如果它们的x、y、z坐标值都相等,则返回true,否则返回false。在测试主Test中,创建了两个Point对象pt1和pt2,它们的坐标值都相等,因此调用equals()方法返回true。在输出pt1时,调用了Point的toString()方法,返回了该点的x、y、z坐标值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值