요약 - 학생 성적
Coddy Lua 여정의 객체 지향 프로그래밍 (Object Oriented Programming) 섹션에 포함된 레슨. 70개 중 18번째.
챌린지
쉬움이 장에서 배운 모든 것을 하나로 모아 인스턴스 변수, getter, setter, 계산된 속성이 모두 함께 작동하는 완전한 Student 클래스를 만들어 봅시다!
코드를 두 파일로 나누어 구성합니다:
Student.lua: 표준 prototype pattern을 사용하여Student클래스를 Define합니다. 각 student는name과grade를 저장해야 합니다. 클래스에는 다음이 필요합니다::new(name, grade)constructor- student의 name을 반환하는
:getName()getter - current grade를 반환하는
:getGrade()getter - grade를 update하는
:setGrade(newGrade)setter - student의 grade가 threshold보다 크거나 같으면
true를, otherwisefalse를 반환하는:hasPassed(threshold)method
main.lua: Student module을 Require하고, student를 Create하고 상태를 확인하며 grade를 update한 다음 변경 사항을 확인하여 모든 기능을 시연합니다.
네 개의 inputs를 받습니다:
- Student의 name
- Initial grade
- 확인할 passing threshold
- 설정할 new grade
main 파일에서 given name과 initial grade로 student를 Create한 다음, 다음 내용을 각각 별도의 줄에 Print합니다:
- student의 name
- student의 initial grade
- given threshold에서 student가 통과했는지 여부 (
true또는false를 Print) - new grade로 update한 후의 student의 grade
- grade update 후에도 same threshold에서 student가 통과했는지 여부
예를 들어 inputs가 Emma, 55, 60, 75라면 output은 다음과 같아야 합니다:
Emma
55
false
75
trueEmma는 처음에 grade가 55였으므로 passing threshold인 60을 충족하지 못했습니다. grade를 75로 update한 후에는 통과합니다!
REQUIRED OUTPUT FORMAT:직접 해보기
-- 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: 성적 업데이트 후 학생이 합격했는지 확인하고 출력하기
객체 지향 프로그래밍 (Object Oriented Programming)의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러