Frudy
7k
2019-05-25 17:06:25
4
585

static field, static method는 뭐라고 비유할수있을까요?


평상시,

클래스, 객체, 필드, 메소드를 비유해서 생각해본 결과

클래스 디자인할때 상당히 도움이 됬었습니다.


1년전 배운 20년경력 자바강사님에 따르면,


클래스 = 설계도 (아직 세상에 존재하지않음 = 메모리에 잡히지 않음)

객체 = 생명체 (세상에 존재함 = 메모리에 잡혀있음)

필드 = 객체를 추상화한 것중 "명사"에 해당

메소드 = 객체를 추상화한 것중, "동사"에 해당.


그리고 비유를 이렇게 하셨습니다.

김태희는 여자 클래스의 인스턴스이며, 객체입니다.

김태희의 특징을 모아보면

1, 말을한다 (동사)

2. 걷는다 (동사)

3. 나이 (명사)

4. 이름 (명사)


그래서,

public class Woman

{

private int age;

private String name;

public void run() {...}

public void speak() {...}

}


뭐 이런느낌으로요.


그래서, new Woman();을 하기 전까지는 메모리에 잡히지않고,

비로소 new Woman();.을 해야 메모리에 잡힌다.. 뭐 이런느낌이었습니다.


이 느낌이, 실제로 디자인하는대 지대한 영향을 줬고,

지금 생각해보니....


1. ??? static field는 뭐라고 비유해야하고..

2. ??? static method는 뭐라고 비유해야 아다리가 맞을까요?

+ 중첩클래스는 뭐라고 비유해야 적당할까요?


위에 비유들은 모두 instance field, instance method잖아요.

김태희의 나이도,

김태희가 걷는다도,

김태희가 세상에 태어나지않으면 존재할수없는 명사와 동작이니까요.


객체지향 설계 선배님들, 의견하나씩 주시면 감사하겠습니다.


객체지향 뉴비가 이걸 어떻게 비유해서 이해하면 좋을까요?

0
  • 댓글 4

  • 하두
    12k
    2019-05-25 20:11:04 작성 2019-05-25 21:23:15 수정됨
    객체들 공유기
  • 산들바람_
    3k
    2019-05-25 20:19:17

    아니땐 굴뚝에 연기?

  • gnas2
    70
    2019-05-25 22:11:42

    글쎄요 설계도가 소유한 프로퍼티 ... 행동..? ㅠㅠ

    때로는 있는 그대로 받아들이는것도 필요한 것 같아요

  • 니플
    2019-05-25 22:56:18 작성 2019-05-25 22:56:44 수정됨

    음 제가보기에는 인터페이스하고 혼동하는 것 같습니다.


    static은 클래스를 실행하지않아도 독립적으로 메모리에 실행되어

    다른 클래스와 다르게 변수나 메서드의 값이 유지됩니다.

    그 이상 이하로 생각하지않는 것이 좋은 것 같습니다.

    메모리 측면에서만 생각하는 것이죠


    메모리에 기억하는 것은 그렇게 좋지는 않아서

    정말 유지가 되어야한다는 것이면 작업되어야합니다.


    https://gmlwjd9405.github.io/2018/07/04/class-diagram.html

    위 글에서 인터페이스 실체화관계 참고바랍니다.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.