内部 (C#) クラスをプログラムしたいのですが、vb.Net でキーワード「Friend」を使用していました。今、私はJavaで同じことをしたいです。同等のものは何ですか?
Friend Class NewClass
End Class
friendJavaに相当するものはありません。最善の方法は、2つのクラスを同じパッケージに入れ、一方のクラスパッケージのメンバーをプライベート(つまりpublic、、privateまたprotectedはなし)にして、もう一方のクラスにアクセスできるようにすることです。
Java には、friend というキーワードや、friend に相当するキーワードはありません。VBコードを変換したとき:
Friend Class NewClass
End Class
C#コードへの変換は次のとおりです。
internal class NewClass
{
}
したがって、Javaコードと同等にするには、次の2つのことを行う必要があります。
まず、アクセスしたいパッケージと同じパッケージにクラスを保持します。アクセス修飾子なしの 2 番目の宣言クラス:
class NewClass
{
}
C#の内部は、Javaのデフォルトスコープ(独自のスコープ)と同等です。
Javaには内部がありません。
Visual Basic .NET では、Friendキーワードはアクセシビリティについて語っています。C# では、同等のキーワードはinternal.
Java にはそのようなキーワードはありませんが、クラス宣言でアクセス指定子を除外することで、パッケージ スコープに関して効果的に同じ可視性を得ることができます。
同じクラス宣言の C# バージョンと Java バージョンを並べて比較すると (完全を期すために Visual Basic バージョンも追加しました) 、 、、class Bおよびの宣言に注意してください。A.YB.YC.YD.Y
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
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;
}
}
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# の比較も参照してください。