4

内部 (C#) クラスをプログラムしたいのですが、vb.Net でキーワード「Friend」を使用していました。今、私はJavaで同じことをしたいです。同等のものは何ですか?

Friend Class NewClass

End Class
4

4 に答える 4

4

friendJavaに相当するものはありません。最善の方法は、2つのクラスを同じパッケージに入れ、一方のクラスパッケージのメンバーをプライベート(つまりpublic、、privateまたprotectedはなし)にして、もう一方のクラスにアクセスできるようにすることです。

于 2012-12-02T09:30:36.030 に答える
1

Java には、friend というキーワードや、friend に相当するキーワードはありません。VBコードを変換したとき:

Friend Class NewClass

End Class

C#コードへの変換は次のとおりです。

internal class NewClass
{

}

したがって、Javaコードと同等にするには、次の2つのことを行う必要があります。

まず、アクセスしたいパッケージと同じパッケージにクラスを保持します。アクセス修飾子なしの 2 番目の宣言クラス:

class NewClass
{

}
于 2012-12-02T09:38:36.983 に答える
0

C#の内部は、Javaのデフォルトスコープ(独自のスコープ)と同等です。

Javaには内部がありません。

于 2012-12-02T09:29:53.430 に答える
0

Visual Basic .NET では、Friendキーワードはアクセシビリティについて語っています。C# では、同等のキーワードはinternal.

Java にはそのようなキーワードはありませんが、クラス宣言でアクセス指定子を除外することで、パッケージ スコープに関して効果的に同じ可視性を得ることができます。

同じクラス宣言の C# バージョンと Java バージョンを並べて比較すると (完全を期すために Visual Basic バージョンも追加しました) 、 、、class Bおよびの宣言に注意してください。A.YB.YC.YD.Y

Visual Basic バージョン:

Public Class A
    Public Shared X As Integer
    Friend Shared Y As Integer
    Private Shared Z As Integer
End Class
Friend Class B
    Public Shared X As Integer
    Friend Shared Y As Integer
    Private Shared Z As Integer
    Public Class C
        Public Shared X As Integer
        Friend Shared Y As Integer
        Private Shared Z As Integer
    End Class
    Private Class D
        Public Shared X As Integer
        Friend Shared Y As Integer
        Private Shared Z As Integer
    End Class
End Class

C# バージョン:

public class A
{
    public static int X;
    internal static int Y;
    private static int Z;
}
internal class B
{
    public static int X;
    internal static int Y;
    private static int Z;
    public class C
    {
        public static int X;
        internal static int Y;
        private static int Z;
    }
    private class D
    {
        public static int X;
        internal static int Y;
        private static int Z;
    }
}

Java バージョン:

public class A
{
    public static int X;
    static int Y;
    private static int Z;
}
class B
{
    public static int X;
    static int Y;
    private static int Z;
    public class C
    {
        public static int X;
        static int Y;
        private static int Z;
    }
    private class D
    {
        public static int X;
        static int Y;
        private static int Z;
    }
}

こちらの Visual Basic と C# の比較も参照してください。

于 2012-12-02T09:34:48.720 に答える