본문 바로가기

인프런 - 백엔드(김영한)/java

(11)
상속 개발을 할 때 기능을 단위로, class 단위로 개발을 하기 때문에 각각의 class 에는 공통 요소가 있을 수 밖에 없다. 이럴때, 중요한것이 상속이다. 상속을 통하여 불필요한 중복된 기능을 이중으로 만드는 일을 피할 수 있다. 상속을 이용한 간단한 예시를 한번 보자.// 부모 클래스 정의class Animal { // 필드 String name; // 메서드 void eat() { System.out.println(name + "이(가) 먹고 있습니다."); }}// 자식 클래스 Dog 정의class Dog extends Animal { // Dog 클래스만의 메서드 void bark() { System.out.println(name + ..
static / final 메모리 구조자바의 메모리는 크게 아래 세가지로 나눌 수 있다.메서드 영역: 클래스 정보를 보관. (붕어빵 틀)스택 영역: 프로그램이 실행되는 영역 (프로그램이 실행되는 방식을 생각해보면 stack 방식이라는 것을 알 수 있을 것이다.)힙 영역: 인스턴스(객체)가 생성되는 영역 (붕어빵) Static 변수인스턴스(객체)를 생성하면 그 객체 각각의 변수가 생성된다. 하지만 개발을 하다보면 인스턴스(객체) 들의 공용 데이터가 필요할 때가 있다.이러한 경우에 static을 통하여 공용 데이터를 만들수 있다.  아래는 몇개의 인스턴스(객체)가 생성되었는지를 출력하는 코드이다.class Counter { // static 변수 private static int count = 0; // 생성자: 객체..
접근 제어자 접근 제어자자바에서 어떠한 데이터나 기능에 접근하는 것을 허용하거나 제한하기 위해 접근 제한자를 사용한다.접근 제어자의 종류에는 다음 4가지가 존재한다.private: 자기 자신의 class 접근을 제외한 어떠한 접근도 차단. default: 자기 자신의 package 접근을 제외한 어떠한 접근도 차단. -> 아무것도 작성 안했을때 사용됨.protected: 자기 자신의 package 접근 허용, 상속관계의 접근 허용.public: 모든 접근 허용.클래스에서의 접근 제어자클래스에서 접근 제어자는 public, default 만 사용 가능하며, 하나의 자바 파일에는 하나의 public 클래스만 존재할수 있고, default 클래스는 무한정 만들 수 있다. 예시item Classpackage access.q..
class / 객체 class개발을 함에 있어, 어떠한 묶음의 자료를 정리해야 할때가 있다.예를 들어 어떤 음악프로그램을 만드는데 있어서 (속성: 볼륨, on/off 상태, 기능: volumeUp, volumeDown, showStatus )와 같이 정리할 때이다. 이런경우 클래스라는 개념을 이용하면 효과적이다.public class MusicPlayer{ int volume = 0; boolean isOn = false; void on(){ isOn = true; System.out.println("플레이어가 켜졌습니다."); } void off(){ isOn = false; System.out.println("플레이어가 종료되었습니다."); } void volumeUp(){ vol..
배열 선언과 생성 public class Main { public static void main(String[] args) { int[] students; // 배열 변수 선언 students = new int[5]; // 배열 생성 for(int i=0;i배열의 선언과 생성은 다음 코드의 3번째, 4번째 줄와 같이 한다.(다음 코드의 4번째 줄, 배열을 생성하는 부분에서 students 변수에 배열의 주소값이 입력된다. 참조를 통한 입력) 코드 축약public class Main { public static void main(String[] args) { int[] students = {100, 90, 80, 70, 60}; for(int i=0;i위 코드는 다음과 같..
형변환 프로그래밍을 하다보면 간혹 현재의 형을 변환시켜야 할때가 있다. public class test1 { public static void main(String[] args) { double num = 3 / 2; System.out.println(num); // num == 1.0 }}다음과 같은 코드에서 num의 값이 1.5가 출력되길 기대하겠지만 1.0이 출력된다.이는 정수 3과 정수 2의 연산은 정수 이기 때문이다.  다음을 고치기 위해서 우리는 다음과 같이 형 변환을 해주어야 한다.public class test1 { public static void main(String[] args) { double num = (double)3 / 2; //..
입력 Java 에서 입력은 Scanner class를 이용하여 받는다. 1. import scanner class우선 Java에서 입력을 받으려면 먼저 java.util.Scanner 클래스를 임포트해야 한다. import java.util.Scanner; 2. Scanner 객체 생성Scanner scanner = new Scanner(System.in); System.in 을 매개변수로 전달하여 키보드 입력을 받을 수 있게 함. 3. 입력받기Scanner class 는 여러 매서드를 이용하여 다양한 타입의 데이터를 입력받을 수 있다.nextLine(): 한줄 전체를 입력받음. (\n 전까지 읽음)next(): 단어 단위로 입력받음.nextInt(): 정수를 입력받음.nextDouble(): 실수를 입력받음..
조건문 if / else if다음과 같이 사용한다.public class test { public static void main(String[] args) { int age = 14; if (age  switch비교 연산자를 통한 조건이 아닌 단지 값이 같은지 아닌지를 이용하여 조건을 만들때 사용.ex)public class test { public static void main(String[] args) { String grade = "B"; switch (grade){ case "A": System.out.println("탁월한 성과입니다."); break; ..