본문 바로가기
반응형

분류 전체보기256

Chap_07. 메소드 오버로딩 지난 시간에 학습한 BlackBox 클래스를 활용하여 메소드 오버로딩을 한번 더 이해해보자. BlackBox 클래스 내에 record() 메소드를 추가하였다. record() 메소드는 아래 전달값에 따라 영상정보를 녹화하는 메소드이다. showDateTime : 날짜 정보 표시 여부 -> 값이 true 이면 "영상에 날짜 정보가 표시됩니다." 출력 showSpeed : 속도 정보 표시 여부 -> 값이 true 이면 "영상에 속도 정보가 표시됩니다" 출력 min : 영상 기록 단위(분) -> "영상은 min 분 단위로 기록됩니다" 출력 _04_Method 클래스 내 b1 객체를 생성하고 b1.record() 메소드를 전달값과 함께 호출하면 위와 같이 결과가 출력되는 것을 확인할 수 있다. 하지만 실생활에 .. 2023. 4. 21.
Chap_07. 클래스 변수와 메소드 이전시간에 학습한 BlackBox 클래스를 활용하여 클래스 변수에 대하여 이해해보자. BlackBox 클래스에는 4개의 인스턴스 변수(modelName, resolution, price, color)와 클래스 변수 1개(canAutoReport)가 선언되었다. 인스턴스 변수는 변수 앞에 static이 없으며, 각 객체들마다 서로 다른 값을 가질 수 있다. 클래스 변수는 변수 앞에 static이 함께 정의되며, 클래스로부터 만들어지는 모든 객체에 똑같이 적용된다. 객체 b1, b2 에서 canAutoReport 값 확인 시 모두 false로 동일하게 출력된다. 위 사유로 가급적 클래스 변수를 호출할때에는 클래스명을 이용해 접근한다. Ex) b1.canAutoReport 보다는 BlackBox.canAuto.. 2023. 4. 20.
Chap_07. 클래스와 인스턴스 변수 객체지향프로그래밍 (OOP : Object-Oriented Programming) 객체는 동물이나 사물 등의 개념(Ex. 컴퓨터, 그래픽카드, 마우스, 키보드 ... ) 객체지향프로그래밍은 유지보수가 용이하고, 높은 재사용성을 장점으로 가진다. 클래스의 필요성에 대하여 이해해보자. String[] items = {"CPU","RAM","하드디스크"}; 위와 같이 같은 자료형에 대하여 여러 데이터가 필요한 경우 배열을 활용하게 된다. 그런데 아래와 같이 서로 다른 자료형의 데이터의 조합이라고 한다면 배열을 활용하기가 어렵다. 차량용 블랙박스 상품을 만든다고 생각해보자. 각 상품별로 모델명, 해상도, 가격, 색상 정보가 필요하다. 이 때 모델명, 해상도, 색상은 String 자료형이지만 가격(price)정보.. 2023. 4. 20.
Quiz. 메소드를 활용한 개인정보 비공개처리 예시) 이름 : 나코딩 주민번호 : 990130-1234567 연락처 : 010-1234-5678 위와 같이 개인정보가 있을 때 개인정보 뒷자리를 비공개 ( * 마스킹처리 ) 처리 하는 메소드를 작성해보자. 하나의 메소드로 모든 동작을 처리해야하며, 이름은 2번째 글자, 주민번호는 9번째글자, 전화번호는 10번째 글자부터 * 처리한다. 변수명.subString(시작index,끝index); //문자열을 잘라준다. 내가 작성한 코드는 아래와 같다. 2023. 4. 20.
Chap_06. Main Method 1. 인텔리제이 우측 상단의 [Current File] -> [Edit Configurations.. ] 클릭 2. 팝업 좌측 상단 + 클릭 -> [Application] 클릭 Name : Test Main class : 현재 테스트 중인 JAVA 클래스 선택 Program Arguments : 프로그램 실행 시 전달해줄 값 (Ex "테스트 전달값 입니다.") 위와 같이 설정 후 테스트해보자. * Main 메소드는 문자열로 구성된 배열로 선언되어있음. public static void main(String[] args) { } 우측 상단의 Current File -> Test로 변경된 것을 확인할 수 있다. for each 문을 통해 main 메소드 내 배열 args 를 출력하면 아래와 같이 출력된다. .. 2023. 4. 19.
Chap_06. 변수의 범위(Scope) 메소드를 활용하게되면 변수의 사용범위가 중요해진다. 아래와 같이 main 영역 내에서 int number 변수를 선언 후 다른 메소드(methodA)에서 해당 변수(number)를 이용하려고 하면 오류가 발생된다. 다른 메소드에서 실행된 변수도 동일하다 method A에서 result 라는 변수를 선언 후 methodB, main 영역에서 해당 변수를 출력하면 오류가 발생된다. 위 예제에서 보이는 number, result와 같은 변수를 지역변수라고 한다. 지역변수는 해당 변수가 선언된 영역 내에서만 사용할 수 있는 변수이다. 지역변수는 변수가 선언된 중괄호 { } 내에서만 사용할 수 있다. 만약에 선언된 변수를 다른 메소드에서 쓰고 싶은 경우에는 아래와 같이 전달값을 이용해서 값을 전달받을 수 있도록 .. 2023. 4. 19.
Chap_06. 메소드가 필요한 이유 기존에 학습했던 예제를 활용하여 메소드가 필요한 이유에 대하여 이해해보자. 2의 2승, 3의3승, 4의 2승을 구하는 예제를 아래와 같이 구현하였다. 이 때 계산하는 값만 달라질 뿐, 실제 실행하는 수식 자체는 동일하다. 이처럼 같은동작을 하는데 활용되는 값만 일부 다른 경우에 메소드를 활용하게 되면 여러번 반복되는 코드의 중복을 줄일 수 있다. 위의 예제를 메소드를 통해 구현하면 아래와 같이 코드를 간소화 할 수 있다. 위와 같이 코드를 간소화 하게되면, 가독성을 높이고 추후 코드 수정이 필요할때에도 하나의 메소드만 수정하면 되기 때문에 관리가 유리하다. 또한 메소드 내에서 다른 메소드를 호출할 수 있다. 메소드 오버로딩에서 학습한 예제를 통해 이해해보자. getPower(4) 를 실행하면 인수가 한개.. 2023. 4. 19.
Chap_06. 메소드 오버로딩 이전시간에 학습한 거듭제곱을 계산하는 예제를 통하여 메소드 오버로딩에 대하여 이해해보자. getPower(int number) { return number * number; } 위 메소드를 호출하면 전달받은 인수 number값을 제곱하여 return 값을 반환한다. 위 사례의 경우 int 자료형으로 데이터가 선언되어있기 때문에 문자열로되어있는 숫자를 인수로 사용하는데 어려움이 있다. (Ex. "3", "45") 이를 해결하기 위하여 아래와 같이 문자열 숫자의 거듭제곱을 계산하기 위한 위한 메소드를 새로 생성한다고 생각해보자. public static int getPowerStr(String Number) { int number = Integer.parseInt(strNumber); //String -> .. 2023. 4. 18.
Chap_06. 반환값(Return) 메소드 정의 반환값(return)이 없는 메소드일때 -> public static void 메소드명() { 실행할명령} 반환값이 있는 메소드 일때 -> public static String 메소드명() { 실행할 명령 } : 반환값이 있는 경우, 반환하려는 값의 자료형을 정의해야한다. 전달값(Parameter)와 반환값(Return)을 활용한 메소드 위 예시는 아래와 같은 순서로 동작한다. getPower(2) 메소드 호출 -> result = 2*2 -> result 반환 -> result 값을 retVal 변수에 저장 -> retVal 출력 2023. 4. 18.
Chap_06. 메소드 (Method), 전달값(Parameter) 메소드는 어떠한 기능을 수행하는 코드들의 묶음이다.(Ex. 함수) public static void 메소드명() { 실행할 명령 } 의 형태로 메소드를 정의한다. 메소드명(); 의 형태로 메소드를 호출한다. 메소드는 위와 같이 매개변수(parameter)를 활용하여 실행할 수 있다. public static void 메소드명(데이터타입 매개변수명) { 실행할 명령 } 의 형태로 메소드를 정의한다. 매개변수가 있는 메소드를 호출할때에는 매개변수값을 입력해야한다. // 메소드명(매개변수값); 이때 입력한 매개변수값을 인수(Argument) 라고 한다. // ex) power(2); -> 인수 = 2 매개변수가 여러개인 경우 매개변수와 인수의 구분은 콤마( , )로 한다. ex) 메소드 정의 : public .. 2023. 4. 18.
반응형