일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 믹스인
- EffectiveJava
- Arrays.toString()
- Mixin
- overring
- Math.pow()
- java #continue #반복문
- java #중첩반복문 #구구단
- java
- java #자바 #상속
- IntelliJ
- java #조건문 #if문
- 자바 #JAVA
- 스프링 #Spring #spring #입문서
- 메서드
- 해쉬맵
- java #자바 #상속 #오버라이딩
- 자바
- java #자료형
- java #객체지향 #자바
- 자바 #java #상속
- 인텔리제이
- 람다
- java # for문 #반복문
- java #조건문 #if조건문 #if
- 객체지향프로그램
- 이펙티브자바
- 자바 #변수 #java
- Math.sqrt()
- HashMap
- Today
- Total
목록목록 (46)
산으로 가자▲
IntelliJ를 사용하면서 알아두면 좋은 단축키, 템플릿을 알아보자. 이 정도만 알아도 작업 속도에 많은 영향을 끼칠 것이다. 단축키 코드 Edit 프로젝트 목록으로 이동 맥: command(⌘) + 1 윈도우: 디렉토리, 패키지, 클래스 등 생성 목록 보기 맥: command(⌘) + N 윈도우: Alt + Insert 현재 실행환경 실행 맥: control(^) + shift(⇧) + R 윈도우: Ctrl + Shift + F10 이전 실행 맥: control(^) + R 윈도우: Shift + F10 -> 우측 상단 Run/Debug configurations 상자에 이전 실행 정보가 담겨 있다. 라인 복사하기 맥: command(⌘) + D 윈도우: Ctrl + D 라인 삭제하기 맥: comma..
인스턴스 (instance) 클래스는 객체의 속성을 정의 하고, 기능을 구현하여 만들어 놓은 코드 상태 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됨 new 키워드를 사용하여 인스턴스 생성 힙 메모리 생성된 인스턴스는 동적 메모리(heap memory) 에 할당됨 C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제 시켜야 함 ( free() 난 delete 이용) 자바에서 Gabage Collector 가 주기 적으로 사용하지 않늠 메모리를 수거 하나의 클래스로 부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됨 참조 변수, 참조 값 `St..
학생 클래스를 정의 하고 이를 사용해 보자 학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현한다 `public class Student { public int studentID; public String studentName; public String address; public void showStudentInfo() { System.out.println(studentName + "," + address); } public String getStudentName() { return studentName; } }` 학생 클래스를 생성하여 생성된 객체(인스턴스)에 각각 다른 이름과 주소를 대입한다 `public class StudentTest { public static void main(Strin..
함수란 (function) 하나의 기능을 수행하는 일련의 코드 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음 함수 정의하기 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨 `int add(int num1, int num2) { int result; result = num1 + num2; return result; }` 함수 구현하기 예제 `public class FunctionTest { public static int addNum(int num1, int num2) { int result; result = num1 + num2; return result; } pub..
객체를 찾아 봅시다 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다 아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다 성적확인을 위해 학사 관리 시스템에 로그인 하여 수강 한 과목들의 성적을 확인했다 클래스는 객체의 청사진(blueprint) 입니다 객체의 속성은 클래스의 **멤버 변수(member variable)**로 선언 함 학생 클래스 `public class Student { int studentNumber; String studentName; int majorCode; String majorName; int grade; }` 주문 클래스 `public class Order { int orderId; String buyer..
java.lang.Math클래스의 sqrt() 메서드입니다double타입의 인수를 전달하면 인수에 대한 double타입의 제곱근 값을 리턴해줍니다제곱근은 음수가 나올 수 없으므로 음수를 입력하면 NaN(Not a Number)을 리턴해줍니다 Math.Sqrt() 사용방법Math.Sqrt(double d);사용하여 d의 제곱근을 출력합니다 Math.Sqrt() 사용예제import java.io.IOException; public class MathSqrt { public static void main(String[] args) throws IOException { System.out.println("9의 제곱근 : " + Math.sqrt(9)); System.out.println("20의 제곱근 : " ..
Math.pow()를 이용하여 거듭제곱을 계산할 수 있습니다. pow는 power를 의미하고, power의 뜻은 거듭제곱입니다. pow() 인자로 a와 b를 전달하며, a의 b 제곱이 리턴됩니다. 즉, a를 b번 곱한 값이 리턴됩니다. // Math.java public static double pow(double a, double b) 다음과 같이 3.2의 3제곱을 계산할 수 있습니다. double result = Math.pow(3.2, 3); System.out.println(result); 실행해보면 약 32.76이 리턴됩니다. 이 값은 3.2 * 3.2 * 3.2와 같습니다. 32.76800000000001 int로 변환하고 싶다면 다음과 같이 직접 형변환해줘야 합니다. int result = ..
메서드 재정의하기(overring) 하위 클래스에서 메서드 재정의 하기 오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 VIPCustomer 클래스의 calcPrice()는 할인율이 적용되지 않음 재정의 하여 구현해야 함 VIPCustomer.java @Override public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price - (int)(price * salesRatio); } @overriding 애노테이션 (annotation) 애노테이션은 원래 주석이라는 의미 컴파일러에게 특별..
상속에서 클래스 생성 과정과 형 변환 하위 클래스가 생성 되는 과정 하위 클래스를 생성하면 상위 클래스가 먼저 생성 됨 new VIPCustomer()를 호출하면 Customer()가 먼저 호출 됨 클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출 함 Customer.java `public Customer() { customerGrade = "SILVER"; bonusRatio = 0.01; System.out.println("Customer() 생성자 호출"); }` VIPCustomer.java `public VIPCustomer() { customerGrade = "VIP"; bonusRatio = 0.05; salesRatio = 0.1; System.out...
상속을 활용한 멤버십 클래스 구현하기 멤버십 시나리오 `회사에서 고객 정보를 활용한 맞춤 서비스를 하기 위해 일반고객(Customer)과 이보다 충성도가 높은 우수고객(VIPCustomer)에 따른 서비스를 제공하고자 함 물품을 구매 할때 적용되는 할인율과 적립되는 보너스 포인트의 비율이 다름 여러 멤버십에 대한 각각 다양한 서비스를 제공할 수 있음 멤버십에 대한 구현을 클래스 상속을 활용하여 구현해보기` 일반 고객(Customer) 클래스 구현 고객의 속성 : 고객 아이디, 고객 이름, 고객 등급, 보너스 포인트, 보너스 포인트 적립비율 일반 고객의 경우 물품 구매시 1%의 보너스 포인트 적립 `package ch01; public class Customer { private int customerID..
객체 간의 상속은 어떤 의미일까? 클래스 상속 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속함 `상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass` 상속의 문법 class B extends A{ } `extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 자바는 단일 상속(single inheritance)만을 지원함` 상속을 구현 하는 경우 상위 클래스는 하위 클래스 보다 더 일..
객체 간의 상속은 어떤 의미일까? 클래스 상속 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속함 `상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass` 상속의 문법 class B extends A{ } `extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 자바는 단일 상속(single inheritance)만을 지원함` 상속을 구현 하는 경우 상위 클래스는 하위 클래스 보다 더 일..
객체와 객체 지향 프로그래밍 객체 (Object) 의사나 행위가 미치는 대상 ( 사전적 의미 ) 구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 ) 객체 지향 프로그램과 절차 지향 프로그래밍 아침에 일어나 학교를 가는 과정을 예를 들어 봅시다. 절차 지향 프로그래밍 시간이나 사건의 흐름에 따른 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다-> 요금을 지불한다 -> 학교에 도착 객체 지향 프로그래밍 객체 지향 프로그램은 어떻게 구현하는가? 객체를 정의 하고 각 객체 제공하는 기능들을 구현하고 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통하여 객체간의 협력을 구현
break문 사용하기 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용) 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴 break문 예제 1부터 숫자를 더하여 100이 넘는 순간의 그 숫자와 합을 출력하세요 package ch21; public class BreakTest { public static void main(String[] args) { int sum = 0; int num; for( num = 1; ; num++) { sum += num; if( sum >= 100)break; } System.out.println..
중첩 반복문이란? 반복문 내부에 또 다른 반복문이 있음 여러 겹으로 반복문을 겹쳐서 구현 가능 (단 수행시간에 문제가 발생할 수 있음) 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의 하며 구현하여야 함 구구단을 for와 while로 구현해 보자 package ch20; public class NestedLoopTest { public static void main(String[] args) { int dan = 2; int count = 1; for( dan = 2; dan
조건과 상관 없이 한번은 수행문을 수행 while문은 조건을 먼저 체크하고 반복 수행이 된다면, do-while은 조건과 상관 없이 수행을 한 번 하고나서 조건을 체크 조건이 맞지 않으면(true 가 아니면) 더 이상 수행하지 않음 do-while 예제 입력받는 모든 숫자의 합을 구하는 예제 단, 입력이 0이 되면 반복을 그만하고 합을 출력 package ch18; import java.util.Scanner; public class DowhileTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input; int sum = 0; do { input = scanner.nextInt(); ..
조건이 참(true)인 동안 반복수행하기 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문 조건이 맞지 않으면 반복하던 수행을 멈추게 됨 조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨 예) 달리는 자동차, 일정 횟수 만큼 돌아가는 나사못, 특정 온도까지 가동되는 에어컨등 while문 수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행 while 문 예제 1부터 10까지 더하여 그 결과를 출력해 보자 package ch17; public class WhileTest { public static void main(String[] args) { int num = 1; int sum = 0; while( num
for문의 수행 순서 for문 예제 (while과 비교) 1부터 10까지 더한 결과를 출력하세요 package ch19; public class ForTest { public static void main(String[] args) { int count =1; int sum = 0; for( int i = 0 ; i
조건이 여러 개 일 때 간단히 표현되는 switch-case 문 switch - case 문 if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현 비교 조건이 특정 값이나 문자열인 경우 사용 break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함 자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 ) 한 달이 며칠인지 알려주는 프로그램 구현 `package ch16; public class SwitchCaseTest { public static void main(String[] args) { int month = 10; int day; switch(month){ case 1: case 3: case 5: case ..