• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Spring 게시판 public private protected static (access modifiers) 과제 질문있습니다.

public private protected static (access modifiers) 과제 질문있습니다.

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #128049

    22
    참가자
    질문1.
    선생님 코드 중에서 public void 한살더하기(){ 할 때 return값을 안주시는데요. 혹시 제코드 처럼 return값 주면 틀리나요?
    과제 제 코드: 
    package com.example.spring_homework.section1;
    import jakarta.persistence.*;
    import lombok.Data;
    import lombok.ToString;
    @Data
    @Entity
    @ToString
    public class Age {
        @Id @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        private Integer age;
        public Integer 한살더하기(){
            this.age+=1;
            return age;
        }
        public Integer 나이설정(int number){
            if (number<0){
                return this.age;
            }
            this.age=number;
            return age;
        }
    }
    package com.example.spring_homework.section1;
    import lombok.RequiredArgsConstructor;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    @Controller
    @RequiredArgsConstructor
    public class AgeController {
        private AgeRepository ageRepository;
        @GetMapping("/d")
        void list(Model model){
            Age a = new Age();
            a.setAge(60);
            a.나이설정(20);
            a.한살더하기();
            System.out.println(a.getAge());
        }
    }
    선생님 코드:
    @Getter
    @Setter
    public class Test {
        private Integer age;
        private String name;
        public void 한살더하기(){
            this.age = this.age + 1;
        }
        public void 나이설정(Integer a){
            this.age = a;
        }
    }
    질문2.첫번째코드에서는 작동이 되는데 2번째 코드에서는 작동이 안되는 이유가 궁금합니다.
    2번째 코드에서 Cannot resolve symbol '한살더하기' 이렇게 에러가 나옵니다. 인터넷에 찾아보니  Java에서는 클래스의 필드나 메서드를 클래스 몸체 밖에서 바로 사용할 수 없습니다. 클래스 내의 메서드는 다른 메서드 안에서 호출해야 합니다. 한다고 하는데요. public class AgeController { 안에서 선언한거니 클래스 몸체 내부 이지 않나요? 다른 이유가 있을까요?
     
    package com.example.spring_homework.section1;
    import lombok.RequiredArgsConstructor;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    @Controller
    @RequiredArgsConstructor
    public class AgeController {
        private AgeRepository ageRepository;
        @GetMapping("/")
        String list(Model model){
            Age a = new Age();
            a.한살더하기();
            a.나이설정(12);
            a.ToString;
        }
    }
    package com.example.spring_homework.section1;
    import lombok.RequiredArgsConstructor;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    @Controller
    @RequiredArgsConstructor
    public class AgeController {
        private AgeRepository ageRepository;
            Age a = new Age();
            a.한살더하기();
            a.나이설정(12);
    
    
    }
     
    #128054

    codingapple
    키 마스터
    함수 쓴 자리에 값을 남기고 싶으면 return 씁시다
    함수에 private같은거 붙인게 아닐까요
    테이블만들거 아니면 @Entity같은건 뺍시다
    #128067

    22
    참가자
    age.class코드에서 한살더하기함수를 public을 붙여줬는데요.
    controller.class코드에서 a.setAge를 호출하면 Cannot resolve symbol 'setAge' 함수를 못불러줍니다.
    혹시 controller.class코드에서 함수를 호출할려면 항상 getmapping이나 @mapping안에서 호출이 가능한건가요?
    
    
    • 이 답변은 22에 의해 11 월, 2 주 전에 수정됐습니다.
    • 이 답변은 22에 의해 11 월, 2 주 전에 수정됐습니다.
    • 이 답변은 22에 의해 11 월, 2 주 전에 수정됐습니다.
    #128070

    22
    참가자
    package com.example.spring_homework.section1;
    import jakarta.persistence.*;
    import lombok.Data;
    import lombok.ToString;
    @Data
    @ToString
    public class Age {
        @Id @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        private Integer age;
        public Integer 한살더하기(){
            this.age+=1;
            return age;
        }
        public Integer 나이설정(int number){
            if (number<0){
                return this.age;
            }
            this.age=number;
            return age;
        }
    
    
    }
    -------
    
    package com.example.spring_homework.section1;
    import lombok.RequiredArgsConstructor;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    @Controller
    @RequiredArgsConstructor
    public class AgeController {
        private AgeRepository ageRepository;
        Age a = new Age();
            a.setAge(60);
            a.나이설정(20);
            a.한살더하기();
    
    
    }
    
    #128102

    codingapple
    키 마스터
    넴 클래스는 함수 변수 넣는 곳이라 실제 실행할 코드는 함수 안에 짭시다
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠