요약 - 학생 성적
Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 18번째.
챌린지
쉬움이번 장에서 배운 인스턴스 변수, 게터(getters), 세터(setters), 그리고 계산된 속성들을 모두 활용하여 완전한 Student 클래스를 만들어 봅시다!
코드는 두 개의 파일로 구성됩니다:
Student.lua: 표준 프로토타입 패턴을 사용하여Student클래스를 정의합니다. 각 학생은name과grade를 저장해야 합니다. 클래스에는 다음이 필요합니다::new(name, grade)생성자- 학생의 이름을 반환하는
:getName()게터 - 현재 성적을 반환하는
:getGrade()게터 - 성적을 업데이트하는
:setGrade(newGrade)세터 - 학생의 성적이 임계값(threshold)보다 크거나 같으면
true를, 그렇지 않으면false를 반환하는:hasPassed(threshold)메서드
main.lua: Student 모듈을 불러와서(require) 학생을 생성하고, 상태를 확인하고, 성적을 업데이트하고, 변경 사항을 검증함으로써 모든 기능을 시연합니다.
네 가지 입력을 받게 됩니다:
- 학생의 이름
- 초기 성적
- 확인할 합격 임계값
- 새로 설정할 성적
메인 파일에서 주어진 이름과 초기 성적으로 학생을 생성한 후, 다음 내용을 각각 별도의 줄에 출력하세요:
- 학생의 이름
- 학생의 초기 성적
- 주어진 임계값으로 합격 여부 확인 (
true또는false출력) - 새로운 성적으로 업데이트한 후의 학생 성적
- 성적 업데이트 후 동일한 임계값으로 합격 여부 확인
예를 들어, 입력값이 Emma, 55, 60, 75라면 출력은 다음과 같아야 합니다:
Emma
55
false
75
trueEmma는 처음에 55점을 받아 합격 임계값인 60점을 넘지 못했습니다. 하지만 성적을 75점으로 업데이트한 후에는 합격하게 됩니다!
직접 해보기
-- Student 모듈 가져오기
local Student = require('Student')
-- 입력 읽기
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: 주어진 이름과 초기 성적으로 학생 객체 생성
-- TODO: getter를 사용하여 학생의 이름 출력
-- TODO: getter를 사용하여 학생의 초기 성적 출력
-- TODO: 주어진 임계값을 기준으로 학생의 합격 여부를 확인하고 출력
-- TODO: setter를 사용하여 학생의 성적 업데이트
-- TODO: 학생의 새로운 성적 출력
-- TODO: 성적 업데이트 후 학생의 합격 여부를 확인하고 출력