friend
日本語 | 友人 |
英語 | friend |
ふりがな | ふれんど |
フリガナ | フレンド |
他のクラスからprivateメンバにアクセスできるようにするための予約語。
C++言語に存在する予約語。
Javaには存在しない。
privateフィールドやprivateメソッド等のprivateメンバは、自分以外のクラスからアクセスすることはできない。
C++言語では、「friend」という予約語で他のクラスを指定することで、そのクラスからはprivateメンバにアクセスすることを許可することができる。
このようにfriendで指定したクラスのことを「フレンドクラス」という。
カプセル化を壊すことになるため、多用は危険。
そのためか、Javaにはfriendという予約語は存在しない。同様の機能を持つ予約語も存在しない。
ただし、内部クラスは、外部クラスのprivateメンバにアクセスできるため、内部クラスを用いることで擬似的にfriendと同様の機能を実現することができる。
C++言語に存在する予約語。
Javaには存在しない。
privateフィールドやprivateメソッド等のprivateメンバは、自分以外のクラスからアクセスすることはできない。
C++言語では、「friend」という予約語で他のクラスを指定することで、そのクラスからはprivateメンバにアクセスすることを許可することができる。
このようにfriendで指定したクラスのことを「フレンドクラス」という。
カプセル化を壊すことになるため、多用は危険。
そのためか、Javaにはfriendという予約語は存在しない。同様の機能を持つ予約語も存在しない。
ただし、内部クラスは、外部クラスのprivateメンバにアクセスできるため、内部クラスを用いることで擬似的にfriendと同様の機能を実現することができる。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
// Javaでは、friendという予約語は存在しません。
// friend class FriendClass;
// コンパイルエラー:
// キーワード "class" に構文エラーがあります。正しくは "Identifier" です。
public static void main( String[] args )
{
// Javaでは、friendは予約語ではないので
// 識別子として使用できます。
int friend = 100;
}
}
// friendクラス?
class FriendClass
{
}
public class Sample
{
// Javaでは、friendという予約語は存在しません。
// friend class FriendClass;
// コンパイルエラー:
// キーワード "class" に構文エラーがあります。正しくは "Identifier" です。
public static void main( String[] args )
{
// Javaでは、friendは予約語ではないので
// 識別子として使用できます。
int friend = 100;
}
}
// friendクラス?
class FriendClass
{
}
// Sample.java public class Sample { // Javaでは、friendという予約語は存在しません。 // friend class FriendClass; // コンパイルエラー: // キーワード "class" に構文エラーがあります。正しくは "Identifier" です。 public static void main( String[] args ) { // Javaでは、friendは予約語ではないので // 識別子として使用できます。 int friend = 100; } } // friendクラス? class FriendClass { }