内部 (C#) クラスをプログラムしたいのですが、vb.Net でキーワード「Friend」を使用していました。今、私はJavaで同じことをしたいです。同等のものは何ですか?
Friend Class NewClass
End Class
friend
Javaに相当するものはありません。最善の方法は、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.Y
B.Y
C.Y
D.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# の比較も参照してください。