繝励Ο繧ー繝ゥ繝險隱 繧ケ繧ウ繝シ繝
private/public
var i = "global"
function myFunction()
{
縲縲//local螟画焚
縲縲var i = "local"
}
console.log(i);
// 竍 i : "global"
var螳」險繧定。後o縺ェ縺莠九↓繧医k蠑雁ョウ縺ォ豕ィ諢
//global螟画焚
var i = "global"
function myFunction()
{
縲縲//var繧剃サ倥¢縺ェ縺蝣エ蜷
縲縲//螳」險縺ァ縺ェ縺乗里蟄伜、画焚繧剃ク頑嶌縺 シ global螟画焚繧剃ク頑嶌縺
縲縲i = "local"
}
console.log(i);
// 竍 i : "local"
JavaScript縺ォ繝悶Ο繝繧ッ繧ケ繧ウ繝シ繝励ッ縺ェ縺
if(true)
{
縲縲var data = 10;
}
console.log(data);
竍 10 (if譁蜀縺ョ螟画焚縺ォ繧「繧ッ繧サ繧ケ縺ァ縺阪k)
protected
private
蜷御ク繧ッ繝ゥ繧ケ蜀縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
豢セ逕溘け繝ゥ繧ケ縺九i シ 繧ッ繝ゥ繧ケ蜀縺九i縺ァ繧ゅい繧ッ繧サ繧ケ荳榊庄
豢セ逕溘け繝ゥ繧ケ縺九i シ 繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
protected
蜷御ク繧ッ繝ゥ繧ケ蜀縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
豢セ逕溘け繝ゥ繧ケ縺九i シ 繧ッ繝ゥ繧ケ蜀縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
豢セ逕溘け繝ゥ繧ケ縺九i シ 繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
{
縲縲public int memberPublic { get; set; }
縲縲private int memberPrivate { get; set; }
縲縲protected int memberProtected { get; set; }
}
public class Child : Parent
{
縲縲public void action()
縲縲{
縲縲縲縲base.memberPublic = 10;縲竍単ublic シ OK
縲縲縲縲base.memberPrivate = 10;縲竍単rivate シ NG
縲縲縲縲//private繝。繝ウ繝舌シ縺ッ豢セ逕溘け繝ゥ繧ケ縺九i繧「繧ッ繧サ繧ケ荳榊庄
縲縲縲縲base.memberProtected = 10;縲竍単rotected シOK
縲縲縲縲//protected繝。繝ウ繝舌シ縺ッ豢セ逕溘け繝ゥ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
縲縲}
}
public void myForm_Load(object sender, EventArgs e)
{
縲縲Parent myParent = new Parent();
縲縲myParent.memberPublic = 50;縲竍単ublic シ OK
縲縲myParent.memberPrivate = 50;縲竍単rivate シ NG
縲縲myParent.memberProtected = 50;縲竍単rotected シNG
縲縲//Private&Protected縺ッ螟夜Κ縺九i繧「繧ッ繧サ繧ケ荳榊庄
縲縲Child myChild = new Child();
縲縲myChild.memberPublic = 50;縲竍単ublic シ OK
縲縲myChild.memberPrivate = 50;縲竍単rivate シ NG
縲縲myChild.memberProtected = 50;縲竍単rotected シNG
縲縲//memberPrivate&3縺ッ螟夜Κ縺九i繧「繧ッ繧サ繧ケ荳榊庄
}
縲縲Private _memberPublic As Integer
縲縲Private _memberPrivate As Integer
縲縲Private _memberProtected As Integer
縲縲Public Property memberPublic As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Private Property memberPrivate As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Protected Property memberProtected As Integer
縲縲縲縲逡・
縲縲End Property
End Class
Public Class Child
縲縲Inherits Parent
縲縲Public Sub Action()
縲縲縲縲MyBase.memberPublic = 50縲竍単ublic シ OK
縲縲縲縲MyBase.memberPrivate = 50縲竍単rivate シ NG
縲縲縲縲‘private繝。繝ウ繝舌シ縺ッ豢セ逕溘け繝ゥ繧ケ縺九i繧「繧ッ繧サ繧ケ荳榊庄
縲縲縲縲MyBase.memberProtected = 50縲竍単rotected シOK
縲縲縲縲‘protected繝。繝ウ繝舌シ縺ッ豢セ逕溘け繝ゥ繧ケ縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
縲縲End Sub
End Class
Private Sub myForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
縲縲Dim myParent As New Parent()
縲縲myParent.memberPublic = 10縲竍単ublic シ OKOK
縲縲myParent.memberPrivate = 10縲竍単rivate シ NG
縲縲myParent.memberProtected = 10縲竍単rotected シNG
縲縲‘memberPrivate&3縺ッ螟夜Κ縺九i繧「繧ッ繧サ繧ケ荳榊庄
縲縲Dim myChild As New Child()
縲縲myChild.memberPublic = 100縲竍単ublic シ OKOK
縲縲myChild.memberPrivate = 100縲竍単rivate シ NG
縲縲myChild.memberProtected = 100縲竍単rotected シNG
縲縲‘memberPrivate&3縺ッ螟夜Κ縺九i繧「繧ッ繧サ繧ケ荳榊庄
End Sub
internal/Friend
internal/Friend
蜷御ク繝輔ぃ繧、繝ォ縺九i
繧ッ繝ゥ繧ケ蜀 シ 繧「繧ッ繧サ繧ケ蜿ッ
繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i シ 繧「繧ッ繧サ繧ケ蜿ッ
蛻・繝輔ぃ繧、繝ォ縺九i
繧ッ繝ゥ繧ケ蜀 シ 繧「繧ッ繧サ繧ケ荳榊庄
繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺九i シ 繧「繧ッ繧サ繧ケ荳榊庄
public class Parent
{
縲縲public int memberPublic { get; set; }
縲縲private int memberPrivate { get; set; }
縲縲protected int memberProtected { get; set; }
縲縲internal int memberInternal { get; set; }
}
縲絶代→縺ッ蛻・縺ョexe縲
using InternalTest;
//竊代r蜿らァ
public class MyInternal
{
縲縲internal int memberInternal { get; set; }
}
public void myForm_Load(object sender, EventArgs e)
{
縲縲Parent myParent = new Parent();
縲縲myParent.memberPublic = 50;縲竍単ublic シ OK
縲縲myParent.memberPrivate = 50;縲竍単rivate シ NG
縲縲myParent.memberProtected = 50;縲竍単rotected シ哢G
縲縲//private縲}rotected縺ェ縺ョ縺ァ螟夜Κ縺九i繧「繧ッ繧サ繧ケ縺ァ縺阪↑縺
縲縲myParent.memberInternal = 50;縲竍棚nternal シ NG
縲縲//internal縺ェ縺ョ縺ァ螟夜Κ繝輔ぃ繧、繝ォ縺九i繧「繧ッ繧サ繧ケ縺ァ縺阪↑縺
縲縲MyInternal myInternal = new MyInternal();
縲縲myInternal.memberInternal = 50;縲竍棚nternal シ OK
縲縲//internal縺ッ蜷御ク繝輔ぃ繧、繝ォ縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ閭ス
}
Public Class Parent
縲縲Private _memberPublic As Integer
縲縲Private _memberPrivate As Integer
縲縲Private _memberProtected As Integer
縲縲Private _memberInternal As Integer
縲縲Public Property memberPublic As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Private Property memberPrivate As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Protected Property memberProtected As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Friend Property memberInternal As Integer
縲縲縲縲逡・
縲縲End Property
End Class
縲絶代→縺ッ蛻・縺ョexe縲
Imports FriendTest
竊代r蜿らァ
Private Class MyFriend
縲縲Private _memberInternal As Integer
縲縲Friend Property memberInternal As Integer
縲縲縲縲逡・
縲縲End Property
End Class
Private Sub myForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
縲縲Dim myParent As New Parent()
縲縲myParent.memberPublic = 10縲竍単ublic シ OK
縲縲myParent.memberPrivate = 10縲竍単rivate シ NG
縲縲myParent.memberProtected = 10縲竍単rotected シ哢G
縲縲’private縲}rotected縺ッ螟夜Κ縺九i繧「繧ッ繧サ繧ケ縺ァ縺阪↑縺
縲縲myParent.memberInternal = 10縲竍棚nternal シ NG
縲縲‘Friend縺ッ蛻・繝輔ぃ繧、繝ォ縺九i繧「繧ッ繧サ繧ケ縺ァ縺阪↑縺
縲縲Dim myFriend As New MyFriend()
縲縲myFriend.memberInternal = 10縲竍棚nternal シ OK
縲縲‘Friend縺ッ蜷御ク繝輔ぃ繧、繝ォ縺九i縺ッ繧「繧ッ繧サ繧ケ蜿ッ
End Sub
protected internal/Protected Friend
public class OuterParent
{
縲縲public int memberPublic { get; set; }
縲縲private int memberPrivate { get; set; }
縲縲protected int memberProtected { get; set; }
縲縲internal int memberInternal { get; set; }
縲縲protected internal int memberProtectedInternal { get; set; }
}
public class OuterChild : OuterParent
{
縲縲public void Action()
縲縲{
縲縲縲縲base.memberPublic = 10; //Public シ OK
縲縲縲縲base.memberPrivate = 10; //Private シ NG
縲縲縲縲base.memberProtected = 10; //Protected シ OK
縲縲縲縲base.memberInternal = 10; //Internal シ OK
縲縲縲縲base.memberProtectedInternal = 10; //protected Internal シ OK
縲縲}
}
縲絶代→縺ッ蛻・縺ョexe縲
using InternalTest;
//竊代r蜿らァ
private class InnerChild : OuterParent
{
縲縲public void Action()
縲縲{
縲縲縲縲base.memberPublic = 10; //Public シ OK
縲縲縲縲base.memberPrivate = 10; //Private シ NG
縲縲縲縲base.memberProtected = 10; //Protected シ OK
縲縲縲縲//豢セ逕溘Γ繝ウ繝舌シ縺九i繧「繧ッ繧サ繧ケ蜿ッ
縲縲縲縲base.memberInternal = 10; //Internal シ NG
縲縲縲縲//螟夜Κ繝輔ぃ繧、繝ォ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
縲縲縲縲base.memberProtectedInternal = 10; //protected Internal シ OK
縲縲縲縲//螟夜Κ繝輔ぃ繧、繝ォ縺九i縺縺後}rotected縺ェ縺ョ縺ァ繧「繧ッ繧サ繧ケ蜿ッ
縲縲}
}
public void main()
{
縲縲OuterParent myOuterParent = new OuterParent();
縲縲myOuterParent.memberPublic = 10; //Public シ OK
縲縲myOuterParent.memberPrivate = 10; //Private シ NG
縲縲myOuterParent.memberProtected = 10; //Protected シ NG
縲縲myOuterParent.memberInternal = 10; //Internal シ NG
縲縲myOuterParent.memberProtectedInternal = 10; //protected Internal シ NG
縲縲OuterChild myOuterChild = new OuterChild();
縲縲myOuterChild.memberPublic = 10; //public シ OK
縲縲myOuterChild.memberPrivate = 10; //Private シ NG
縲縲myOuterChild.memberProtected = 10; //Protected シ NG
縲縲myOuterChild.memberInternal = 10; //Internal シ NG
縲縲myOuterChild.memberProtectedInternal = 10; //protected Internal シ NG
縲縲InnerChild myInnerChild = new InnerChild();
縲縲myInnerChild.memberPublic = 10; //public シ OK
縲縲myInnerChild.memberPrivate = 10; //Private シ NG
縲縲myInnerChild.memberProtected = 10; //Protected シ NG
縲縲myInnerChild.memberInternal = 10; //Internal シ NG
縲縲myInnerChild.memberProtectedInternal = 10; //protected Internal シ NG
}
Public Class OuterParent
縲縲Private _memberPublic As Integer
縲縲Private _memberPrivate As Integer
縲縲Private _memberProtected As Integer
縲縲Private _memberFriend As Integer
縲縲Private _memberProtectedFriend As Integer
縲縲Public Property memberPublic As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Private Property memberPrivate As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Protected Property memberProtected As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Friend Property memberFriend As Integer
縲縲縲縲逡・
縲縲End Property
縲縲Protected Friend Property memberProtectedFriend As Integer
縲縲縲縲逡・
縲縲End Property
End Class
Public Class OuterChild
縲縲Inherits OuterParent
縲縲Public Sub Action()
縲縲縲縲MyBase.memberPublic = 10縲縲’竍単ublic シ OK
縲縲縲縲MyBase.memberPrivate = 10縲縲’竍単rivate シ NG
縲縲縲縲MyBase.memberProtected = 10縲縲’竍単rotected シ OK
縲縲縲縲MyBase.memberFriend = 10縲縲’竍巽riend シ OK
縲縲縲縲MyBase.memberProtectedFriend = 10縲縲’竍単rotectedFriend シ OK
縲縲End Sub
End Class
縲絶代→縺ッ蛻・縺ョexe縲
Imports FriendTest
//竊代r蜿らァ
Private Class InnerChild
縲縲Inherits OuterParent
縲縲Public Sub Action()
縲縲縲縲MyBase.memberPublic = 10縲縲’竍単ublic シ OK
縲縲縲縲MyBase.memberPrivate = 10縲縲’竍単rivate シ NG
縲縲縲縲MyBase.memberProtected = 10縲縲’竍単rotected シ OK
縲縲縲縲‘豢セ逕溘Γ繝ウ繝舌シ縺九i繧「繧ッ繧サ繧ケ蜿ッ
縲縲縲縲MyBase.memberFriend = 10縲縲’竍巽riend シ NG
縲縲縲縲‘螟夜Κ繝輔ぃ繧、繝ォ縺九i縺ッ繧「繧ッ繧サ繧ケ荳榊庄
縲縲縲縲MyBase.memberProtectedFriend = 10縲縲’竍単rotectedFriend シ OK
縲縲縲縲‘螟夜Κ繝輔ぃ繧、繝ォ縺九i縺縺後}rotected縺ェ縺ョ縺ァ繧「繧ッ繧サ繧ケ蜿ッ
縲縲End Sub
End Class
Private Sub myForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
縲縲Dim myOuterParent As New OuterParent()
縲縲myOuterParent.memberPublic = 10縲縲’竍単ublic シ OK
縲縲myOuterParent.memberPrivate = 10縲縲’竍単rivate シ NG
縲縲myOuterParent.memberProtected = 10縲縲’竍単rotected シ NG
縲縲myOuterParent.memberFriend = 10縲縲’竍巽riend シ NG
縲縲myOuterParent.memberProtectedFriend = 10縲縲’竍単rotectedFriend シ NG
縲縲Dim myOuterChild As New OuterChild()
縲縲myOuterChild.memberPublic = 10縲縲’竍単ublic シ OK
縲縲myOuterChild.memberPrivate = 10縲縲’竍単rivate シ NG
縲縲myOuterChild.memberProtected = 10縲縲’竍単rotected シ NG
縲縲myOuterChild.memberFriend = 10縲縲’竍巽riend シ NG
縲縲myOuterChild.memberProtectedFriend = 10縲縲’竍単rotectedFriend シ NG
縲縲Dim myInnerChild As New InnerChild()
縲縲myInnerChild.memberPublic = 10縲縲’竍単ublic シ OK
縲縲myInnerChild.memberPrivate = 10縲縲’竍単rivate シ NG
縲縲myInnerChild.memberProtected = 10縲縲’竍単rotected シ NG
縲縲myInnerChild.memberFriend = 10縲縲’竍巽riend シ NG
縲縲myInnerChild.memberProtectedFriend = 10縲縲’竍単rotectedFriend シ NG
End Sub