class Test{
public static int i = 2;
}
이렇게 필드나 뭐 메소드에 static이 붙으면 정적으로 클래스에 귀속되서
객체 생성 없이 Test.i 이런식으로 바로 사용이 가능하다는 것은 알고 있는데.
public static Test
이런식으로 클래스에 static이 붙은것은 뭐임? 왜 붙이는거고 어떻게 사용이 되는거야?
class Test{
public static int i = 2;
}
이렇게 필드나 뭐 메소드에 static이 붙으면 정적으로 클래스에 귀속되서
객체 생성 없이 Test.i 이런식으로 바로 사용이 가능하다는 것은 알고 있는데.
public static Test
이런식으로 클래스에 static이 붙은것은 뭐임? 왜 붙이는거고 어떻게 사용이 되는거야?
정적 클래스
보통 유틸리티 함수들 클래스 하나에 몰아넣을때 쓰는 기능임
아하, 그러니간 다중 클래스 같은 것처럼 클래스 안에 또 클래스 같은것들 몰아서 넣어 둘 때 같은거 말하는거야?
보통 함수만 넣어두고, 변수는 readonly 아니면 생성 안하는게 원칙임
그런데 궁금한게 있는데 스테이틱을 굳이 붙혀야되? 그러니간 public class 유틸리티{ 이렇게 만들고 안에 뭐 합 구해주는 기능, 뭐 이런 여러가지 유틸 기능들 떄려 밖았다 가정하고 그냥 위에처럼 스테이틱 없이 메소드에 스테이틱 넣으면 그냥 사용 가능한거 아니야? 스테이틱을 사용하게 되면 위와 어떤 차이가 있는거야?
클래스에 static 안 붙이고 클래스 안에 모든 메소드에 static 붙이고 Test.Add(5, 3) 이런식으로 사용하는거하고 클래스에 static을 붙이면 무슨 차이인지 궁금한데 설명 가능함? ㅠㅠ 어설프게 일부분만 알고 그러니간 이해좀 해줘..
static 선언해두는게 좀 더 명시적이라 그럼. System.Console은 static으로 선언되어있는데, 이게 인스턴스화가 가능하다고 함 생각해봐..
아하, 딱히 무슨 특별한 기능이나 그런게 아니라 주로 그런 명시적인 이유에서 많이 쓰는 거였구나.. 답변 고마워. 매번 볼 때마다 궁금했는데 감사
그럼 정적클래스 되는거지 뭐 ㅇㅅㅇ
ㅇㅇ 그건 아는데 용도가 궁금해서 물어본거 public class Test{ public static int i = 2; } 이렇게 해도 Test.i 이렇게 사용이 가능한데 왜 static을 붙이는지 용도 같은게 궁금해서.
보면 간혹 static 붙은 클래스들 있는데 그냥 지나첬는데 계속 보다 보니 궁금해져서 물어본거였어.
같은 클래스를 매우많이많이 만들더라도 멤버변수가 각 클래스마다 있는게아니라 단 하나만 존재해야할때 스태틱을 붙임. 예를들면 신발이라는 클래스가 있고 신발 내에 신발끈, 밑창 이런건 신발마다 존재해야함. 근데 니가 신발을 신고 외출한 수를 변수로 지정하려면 신발이라는 클래스 내에 외출수를 스태틱으로 구현해야만 어떤 신발을 신고 나가더라도 외출수가 카운트된다.
외출수를 스태틱으로 구현하지않으면 니가 신발을 신고 밖에나간수가 아니라 "이" 신발을 신고 밖에 나간 수가 되서 신발이라는 클래스따로따로 계산됨.
되서->돼서