在 Java 中使用同一类的另一个方法中的方法

发布于 2024-10-31 02:00:04 字数 1822 浏览 0 评论 0原文

我有一个类 IPAddressString ,它具有:

  • 一个 String 类型的 private 字段,称为 ipAddress
  • 一个 public< /code> 方法 getOc​​tet 带有单个参数 int index,返回一个 int。返回值是根据 ipAddressindex 计算的,
  • public 方法 isPrivateNetwork 返回一个 boolean< /code> 基于 getOc​​tet 的返回值

所以这是代码:

public class IPAddressString {

    private String ipAddress;

    public IPAddressString(int num1, int num2, int num3, int num4) {
        this.ipAddress = num1 + "." + num2 + "." + num3 + "." + num4;
    }

    public String toString() {
        return this.IpAdress;
    }

    public boolean equals(IPAddressString other) {
        return ((other.toString()).equals(ipAddress));
    }

    public int getOctet(int index) {
        StringBuffer buf = new StringBuffer();
        int point = index;
        int countPoints = 0;

        for (int i = 0; i <= ipAddress.length() - 1; i++) {
            if ((ipAddress.charAt(i)) == '.') {
                countPoints++;

            }
            if ((countPoints == point) && ipAddress.charAt(i) != '.') {
                buf.append(ipAddress.charAt(i));
            }

        }
        String result = buf.toString();
        return Integer.parseInt(result);
    }

    public boolean isPrivateNetwork(){
        // I want to use getOctet here
    }

}

我想在 isPrivateNetwork 中做的事情类似于 ipAddress.getOc​​tet(someIndex),这是不可能的,因为 ipAddressString 而不是 IPAddressString。那么,我应该在 IPAddressString 的哪个实例上调用 isPrivateNetwork

I have a class IPAddressString that has:

  • a private field of type String called ipAddress
  • a public method getOctet with a single argument int index that returns an int. The return value is computed based on ipAddress and index
  • a public method isPrivateNetwork that returns a boolean based on the return value of getOctet

So this is the code:

public class IPAddressString {

    private String ipAddress;

    public IPAddressString(int num1, int num2, int num3, int num4) {
        this.ipAddress = num1 + "." + num2 + "." + num3 + "." + num4;
    }

    public String toString() {
        return this.IpAdress;
    }

    public boolean equals(IPAddressString other) {
        return ((other.toString()).equals(ipAddress));
    }

    public int getOctet(int index) {
        StringBuffer buf = new StringBuffer();
        int point = index;
        int countPoints = 0;

        for (int i = 0; i <= ipAddress.length() - 1; i++) {
            if ((ipAddress.charAt(i)) == '.') {
                countPoints++;

            }
            if ((countPoints == point) && ipAddress.charAt(i) != '.') {
                buf.append(ipAddress.charAt(i));
            }

        }
        String result = buf.toString();
        return Integer.parseInt(result);
    }

    public boolean isPrivateNetwork(){
        // I want to use getOctet here
    }

}

What I would like to do inside isPrivateNetwork is something like ipAddress.getOctet(someIndex), which is not possible because ipAddress is a String and not an IPAddressString. So, on which instance of IPAddressString am I supposed to call isPrivateNetwork?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬心 2024-11-07 02:00:04

那么你为什么不直接使用:

public boolean isPrivateNetwork(){
    int result = getOctet(yourIndex)
}

So why don't you just use:

public boolean isPrivateNetwork(){
    int result = getOctet(yourIndex)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文