상세 컨텐츠

본문 제목

프로그래머 도전기 16일차

프로그래머가 될거야!

by Choyee 2023. 9. 13. 23:48

본문

학원 수업에서 한창 클래스를 활용하여

상속도 하고 그로인한 접근 제어자 활용법도 배우고

클래스를 자료형으로 사용하는 방법까지 배우면서

점점 복잡해지고 있는데요

머리속에 최대한 넣어가지고 와서 다시 한번 들여다보기도 하고

파이썬도 vs code를 사용해서 한두번씩 코드들을 살펴보곤 한답니다

짧은시간에 많이 배운것같은데요

오늘은 언제쯤이면 배운걸 모두 최대한으로 활용해볼 수 있을까

욕심이 나는 날이었습니다

 

 

<<JAVA>>

 

* 접근제어자
public - 외부클래스 어디서나 접근 가능, 패키지 불문
private - 같은 클래스 내부에서만 접근 가능, 같은 패키지도 불가능
protected - 같은 패키지 내부, 상속 관계의 클래스인 경우 가능
접근제어자가 붙어있지 않은 경우 = default

* 상속관계
부모 클래스 = 상위 클래스
자식 클래스 = 하위 클래스
메서드 오버라이딩(overriding) = 재정의 = 메서드 기능이 다를 때 변경해서 사용
메서드 오버로딩(over loading) = 메서드의 이름이 같고 매개 변수가 다를 때

상속관계 -> 다형성
형 변환 - 자동형변환 , 강제형변환
참조 자료형 => 부모형 = 자식형 (자동형변환)
                    부모형 > 자식형

0123456

String > char

* 모든 클래스의 부모 = Object 클래스
String.java
toString( ) = Object의 메서드로 재정의하면 문자열 정보 출력할 수 있음

0

8 다형성 (polymorphism)
하나의 타입에 대입되는 객체에 따라서 실행결과가 다양한 형태로 오는 성질을 말함

0


* wrapper 클래스 
기본 자료형처럼 사용할 수 있는 클래스를 말한다
기본 자료형을 감쌌다는 의미로 Wrapper 클래스라고 함
- Integer, Boolean, Double, Character 등이 있음
- 사용 용도 : 객체를 매개변수로 받는 경우, 반환값이 객체인 경우
public void setValue(Integer i){}
public Integer getValue(){return ;}
- Integer.parseInt("문자")
- Interger.parseInt("문자") => parselnt() 메서드 = 문자열을 숫자로 변환
- Integer.valueOf("문자" or 숫자) => valueOf() 메서드 = 괄호 안에 매개변수(정수,문자열)를 숫자로 변환

01

 

<<Python으로 계산기 만들기>>

 

계산기 만들기는 아직도 진행중이랍니다~!!

계산기 값을 보여주는 부분이 허전한것 같아서 

 

 relief="sunken", borderwidth=5 코드를 이용하여 약간 오목해 보이게 만들었고

이후에 outer_label, result_label을 이용해서 이중으로 겹쳐서 색상에 차이를 주었습니다

 

만들어 놓고 보니 사칙연산자가 연속으로 입력되는 버그가 발견되어

 

start = result_label.cget("text")
        if self.last_input_operator and value in ("+", "-", "*", "/"):
            return

조건식을 추가해서 고쳐보았는습니다

 

이쁘게 고쳐보았습니다만....

입력창이 무한으로 늘어나는 문제가 있었네요 ㅠㅠ

친구들에게 배포해서 테스트를 해본 결과

나누기를 할때 0이 눌려서 0003 으로 나눗셈을 하게 된다던가

결과값이 나온 뒤에 숫자를 이어서 입력할 수 있는 등의

문제가 발견되었습니다

 

간단할것 같다고 생각했던 계산기를 만드는 일이

정말 이렇게나 많은 문제점들이 발생할 줄은 몰랐는데요,

새삼 프로그래밍을 하는 일이 사소한것 하나도 놓쳐서는

안되는 일이구나 느끼게 되었습니다

 

버그는 또다시 틈나는대로 아이디어를 짜내서

조금씩 다듬어가보도록 해야겠습니다

 

 

 

 

2023. 09. 13 (수)

관련글 더보기