[Q&A] JAVA | 객체 생성

Поделиться
HTML-код
  • Опубликовано: 19 ноя 2024

Комментарии • 23

  • @머연과함께춤을
    @머연과함께춤을 2 года назад +1

    문제풀이 감사합니다!

    • @HeungSsaem
      @HeungSsaem  2 года назад

      다른 질문도 있으시면 언제든 주세요..^^

  • @Sj-bx8jq
    @Sj-bx8jq Год назад

    안녕하세요, 매번 유익한 강의 제공해주셔서 감사합니다.
    질문 드리고자 댓글 남기게 되었습니다.
    접근제어자에 대해 말씀해주셔서 생긴 질문입니다. 만약 Conv 클래스의 변수 a가 private int a; 로 선언되어 있었다면 결과가 어떻게 되는지 궁금합니다.
    (처음에는 obj.a=5; 가 실행되지 않고 a=3 이라고 생각해서 3으로 값을 대입해서 계산해야한다고 생각했는데, 다시 생각해보면 private 이라 접근을 못하는데 obj.a=5 라고 접근해서 오류가 생길 것 같기도 하다는 생각이 들어서 헷갈립니다.)
    확인해주셔서 감사합니다.

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      private 으로 선언이 되어있다고 해도 결과는 똑같습니다.
      왜냐면, 해당 클래스 내에 public static void main 이 들어가 있어서, 같은 클래스로 취급하기 때문입니다.
      만약 다른 클래스로 선언해서 사용을 한다면 오류가 발생하게 됩니다.
      class Conv2{
      public static void main(String[] args){
      Conv c = new Conv();
      c.a = 10; /// 여기서 오류 발생
      }
      }
      감사합니다.

    • @Sj-bx8jq
      @Sj-bx8jq Год назад

      @@HeungSsaem
      선생님께서 보여주신 예제는 Conv라는 클래스 내에 main 함수가 있기 때문에 private 이더라도 접근이 가능했군요.
      그리고 댓글의 추가 예제는 Conv2라는 Conv와는 다른 클래스 내의 main 함수에서 Conv 클래스의 객체를 생성했는데 Conv 클래스의 멤버변수 a는 private이기 때문에 이 경우가 에러가 나는거였군요.
      추가적인 예제까지 들어주시며 답변해주셔서 감사합니다.

  • @김수진-p3f
    @김수진-p3f Год назад

    안녕하세요!
    선생님 덕분에 자바 조금씩 익히고 있습니다..ㅎㅎ
    질문이 있는데 답변 달아주시면 정말 감사하겠습니다 ㅠㅠ
    1. 초반에 this.a로 class Conv의 a가 3이 되는 걸로 생각했는데, 왜 obj.a가 3이 된건지 궁금합니다. 저는 class conv와 그 인스턴스인 obj 가 각각 존재하고 값도 각각 가지고 있다고 생각했는데 값이 서로 공유되는 건가요?
    2. 오른쪽화면 int.b=obj.func() 에서 b가 obj에 속하지 않는다고 하셨는데, int.b앞에 탭이 넣었으면 obj에 속하게 되는걸까요?

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~~
      1번에 대한 답변을 드릴께요~~
      this.a 라고 하는건, Conv 클래스의 a 를 가리키는건 맞지만,
      지금 인스턴스를 생성했을때 그 인스턴스 명이 obj 이고, obj는 Conv 형태를 가지고 있습니다.
      이 obj에 a 라는 변수가 들어가게 되고 그 obj의 a 에 3을 대입하게 됩니다.
      예를 들어서,
      Conv obj1 = new Conv(3);
      Conv obj2 = new Conv(5);
      라고 하면
      obj1.a 는 3이고, obj2.a 는 5가 되는 형태입니다.
      Conv 는 단순히 구조이고, 그 구조를 가지고 만드는 인스턴스에 멤버변수가 들어간다고 생각해주시면 됩니다.
      2번은 제가 정확히 파악이 되지 않지만,
      b 가 obj에 들어가기 위해서는 Conv 구조에 int b;
      이게 들어가야 합니다.
      지금 현재 int b 는 main 함수에서 사용되는 단순한 지역변수 입니다.
      도움이 되셨으면 좋겠습니다.
      감사합니다. ^^

    • @김수진-p3f
      @김수진-p3f Год назад

      ​@@HeungSsaem 감사합니다!! conv가 단순히 구조일 뿐이었군요... 그동안 class의 멤버변수에 값이 들어간다고 혼자 착각해서 문제가 안풀렸었는데, 덕분에 자바 한걸음 더 뗐습니다 ㅠㅠㅠ

  • @karamjwe
    @karamjwe 6 месяцев назад +1

    func()함수에 int a가 선언 되었다면 그 a값으로 for문 실행되나요???

  • @정우혁-i4g
    @정우혁-i4g 2 года назад +1

    이렇게 문제풀이보면 이해 잘가고 왜틀렸는지 ㅋㅋ 풀만했을문제였는데 ㅠㅠ

    • @HeungSsaem
      @HeungSsaem  2 года назад

      안녕하세요..
      이해가 가신다면 다 알고는 있지만 익숙하지 않을 뿐이에요.
      조금만 더 익숙해지시면 어떤 문제든 실수 없이 푸실 수 있을꺼에요.
      감사합니다. ^^

  • @CoolPiece882
    @CoolPiece882 2 года назад

    2회 실기 문제 였죠 개인적으론 재밌었던 문제였습니다

    • @HeungSsaem
      @HeungSsaem  2 года назад

      자바가 슬슬 어렵게 나올때가 됐어요..^^

    • @dreamiken
      @dreamiken Месяц назад

      안녕하세요! 실기 3수생입니다. 공부할 때 참조하려고 하는데 혹시 실기 몇 년도에 출제 되었는지 알려주시면 안 될까요 ㅠ?

  • @kwindow2
    @kwindow2 2 года назад

    for(int i=1; i

    • @HeungSsaem
      @HeungSsaem  2 года назад

      안녕하세요~~
      넵 i 가 1일때부터 실행되게 됩니다.
      for 문의 수행 순서를 보면,
      가장 처음 한번 0번째로, i = 1
      그 이후에 비교 i < 5
      작기 때문에 실행
      증감 i++
      그 이후에는
      비교, 실행, 증감 이걸 반복하게 됩니다.
      초기값이 1이기 때문에 1부터 비교를 처리하게 됩니다.
      감사합니다. ^^

  • @isabellpark3458
    @isabellpark3458 2 года назад

    b=a*i+b 연산할때 가감승제 +먼저하는거 아닌가요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      안녕하세요~~
      산술연산할때는 *, / 가 우선순위가 높습니다.
      우리가 알고 있는것 처럼 괄호가 가장 높고, */ 이런식으로 해주시면 됩니다.
      감사합니다. ^^

    • @isabellpark3458
      @isabellpark3458 2 года назад

      @@HeungSsaem 감사합니당

  • @user-kz4cg4mk1d
    @user-kz4cg4mk1d 2 года назад

    안녕하세요! obj.a 를 5가 안받고 계속 3을 받는 경우도 있을까요?

    • @HeungSsaem
      @HeungSsaem  2 года назад

      안녕하세요~~~
      저런 형태로는 3을 받을 수는 없습니다.
      3을 받게 하려면 같은 인스턴스를 넘겨주면 됩니다. ^^
      감사합니다.

  • @2_junghwa
    @2_junghwa 2 года назад

    음... 저는 왜 3으로 풀었을까요...

    • @HeungSsaem
      @HeungSsaem  2 года назад

      음...왜 3으로 푸셨어요..^^
      그나저나 합격하셨는데...흐음...