C#은 모르겠는데 static은 자바기준으로는 모든 객체들이 공유하는 속성을 말함 그리고 인스터스는 클래스에서 나온 객체를 말하는거
니애미지잡(115.161)2020-03-20 23:24
클래스A 안에 '가'라는 메소드를 public static으로 만들면 클래스B에서 '가'라는 메소드를 사용할수있음
object.263(qordlstn123)2020-03-20 23:28
답글
class A{ public static int 가(int parameter) { return parameter + 1; }}class B{ public B() { Console.WriteLine(10); Console.WriteLine(A.가(10)); }}이렇게 테스트해보면 대충 알수있을거임
object.263(qordlstn123)2020-03-20 23:30
기본적으로 메서드는 객체의 행위라고 보면 됨. 가령 Human 클래스의 객체 철수를 만들었다고 하면, 철수.walk(); 같은식으로 철수가 걷는것을 표현할 수 있다 - dc Cpp
17번(wjd918273)2020-03-20 23:43
답글
그런데 여기서 Human.walk();는 안됨. 무조건 객체를 하나 생성해야 해당 객체에서 메서드를 호출하게 되는데, - dc Cpp
17번(wjd918273)2020-03-20 23:44
답글
객체가 아닌 클래스에서 호출하게 해주는게 스태틱 키워드임. Human.viewInfo();같은 느낌으로, 사람이 눈코입 팔다리가 몇개인지 말해주는 메서드가 있을 수 있겠지. - dc Cpp
17번(wjd918273)2020-03-20 23:45
답글
예시가 조금 부적절하긴 한데 스태틱일 경우 철수.viewInfo();는 불가능함 - dc Cpp
17번(wjd918273)2020-03-20 23:45
답글
여기서 철수가 인스턴스 즉 객체고 - dc Cpp
17번(wjd918273)2020-03-20 23:45
답글
public은 다른 클래스에서 해당 클래스의 메서드나 필드를 사용할 수 있게 허가해주는 접근제한자임 - dc Cpp
17번(wjd918273)2020-03-20 23:46
답글
Human 클래스의 멤버 변수로 이름 키 나이 성별 등이 있다고 하면, 객체 생성시 생성자에서 이것들을 초기화해줄거임 - dc Cpp
17번(wjd918273)2020-03-20 23:47
답글
그런데 철수의 성별은 남자고, 성전환 수술을 하는경우는 논외로 하자. 그럼 여자로 변하면 안됨. 이런경우 Human클래스에서 성별을 public이 아닌 private로 선언해주겠지. - dc Cpp
17번(wjd918273)2020-03-20 23:47
답글
외부에서 철수.성별 = "여자"; 이런식으로 함부로 바꿔버리면 안되거든. - dc Cpp
17번(wjd918273)2020-03-20 23:48
답글
여기까지 이해 안된부분 있으면 공부하던 교재나 인터넷 웹페이지의 내용을 다시 읽어보셈 - dc Cpp
17번(wjd918273)2020-03-20 23:48
답글
다른 질문인데 WriteLine("이름:{0} 성별:{1}",name,sex}; 이렇게 하는거를 WriteLine($"이름:{name} 성별:{sex}"}; 이렇게 바꿀수 있음? 만약 있다면 그럼 구조적으로 두개가 무슨 차이임? 그리고 전자에서 {0} {1}은 단순히 순서를 나타내는 용도야?
익명(58.233)2020-03-20 23:54
답글
c# 안한지 좀 됐는데 아마? 한번 해보셈.ㅋㅋ 0 1은 단순히 순서를 나타내는 용도가 맞다 - dc Cpp
17번(wjd918273)2020-03-20 23:55
답글
c에서는 포맷스트링이라는 걸 사용했는데, %d, %s와 같은게 {0}, {1} 자리에 들어갔었음. 처음엔 거기서 갈라져나왔으니 비슷한거 아닐까. - dc Cpp
17번(wjd918273)2020-03-20 23:56
public은 접근제한자라고 해서 다른 클래스에서 내 클래스 멤버들 접근할 수 있게 해줌
익명(60.120)2020-03-21 07:43
static은 컴파일 단계에서 미리 메모리에 올리라는 의미다. 그러니까 정적이라고 하고. 따라서 static 붙은 애들은 런타임중에 메모리 할당되는 객체 요소에는 접근 못함
C#은 모르겠는데 static은 자바기준으로는 모든 객체들이 공유하는 속성을 말함 그리고 인스터스는 클래스에서 나온 객체를 말하는거
클래스A 안에 '가'라는 메소드를 public static으로 만들면 클래스B에서 '가'라는 메소드를 사용할수있음
class A{ public static int 가(int parameter) { return parameter + 1; }}class B{ public B() { Console.WriteLine(10); Console.WriteLine(A.가(10)); }}이렇게 테스트해보면 대충 알수있을거임
기본적으로 메서드는 객체의 행위라고 보면 됨. 가령 Human 클래스의 객체 철수를 만들었다고 하면, 철수.walk(); 같은식으로 철수가 걷는것을 표현할 수 있다 - dc Cpp
그런데 여기서 Human.walk();는 안됨. 무조건 객체를 하나 생성해야 해당 객체에서 메서드를 호출하게 되는데, - dc Cpp
객체가 아닌 클래스에서 호출하게 해주는게 스태틱 키워드임. Human.viewInfo();같은 느낌으로, 사람이 눈코입 팔다리가 몇개인지 말해주는 메서드가 있을 수 있겠지. - dc Cpp
예시가 조금 부적절하긴 한데 스태틱일 경우 철수.viewInfo();는 불가능함 - dc Cpp
여기서 철수가 인스턴스 즉 객체고 - dc Cpp
public은 다른 클래스에서 해당 클래스의 메서드나 필드를 사용할 수 있게 허가해주는 접근제한자임 - dc Cpp
Human 클래스의 멤버 변수로 이름 키 나이 성별 등이 있다고 하면, 객체 생성시 생성자에서 이것들을 초기화해줄거임 - dc Cpp
그런데 철수의 성별은 남자고, 성전환 수술을 하는경우는 논외로 하자. 그럼 여자로 변하면 안됨. 이런경우 Human클래스에서 성별을 public이 아닌 private로 선언해주겠지. - dc Cpp
외부에서 철수.성별 = "여자"; 이런식으로 함부로 바꿔버리면 안되거든. - dc Cpp
여기까지 이해 안된부분 있으면 공부하던 교재나 인터넷 웹페이지의 내용을 다시 읽어보셈 - dc Cpp
다른 질문인데 WriteLine("이름:{0} 성별:{1}",name,sex}; 이렇게 하는거를 WriteLine($"이름:{name} 성별:{sex}"}; 이렇게 바꿀수 있음? 만약 있다면 그럼 구조적으로 두개가 무슨 차이임? 그리고 전자에서 {0} {1}은 단순히 순서를 나타내는 용도야?
c# 안한지 좀 됐는데 아마? 한번 해보셈.ㅋㅋ 0 1은 단순히 순서를 나타내는 용도가 맞다 - dc Cpp
c에서는 포맷스트링이라는 걸 사용했는데, %d, %s와 같은게 {0}, {1} 자리에 들어갔었음. 처음엔 거기서 갈라져나왔으니 비슷한거 아닐까. - dc Cpp
public은 접근제한자라고 해서 다른 클래스에서 내 클래스 멤버들 접근할 수 있게 해줌
static은 컴파일 단계에서 미리 메모리에 올리라는 의미다. 그러니까 정적이라고 하고. 따라서 static 붙은 애들은 런타임중에 메모리 할당되는 객체 요소에는 접근 못함