분류 전체보기
Java - 클래스 상속(Inheritance), 오버라이딩(Overriding)
1. 상속(Inheritance) 자식 클래스는 부모 클래스의 모든 속성을 상속 받고 사용 가능하다. 상속 받은 메소드는 필요에 따라 자식 클래스에서 따로 재정의 할 수 있다. (메소드 오버라이딩) 자식 클래스 정의 방식은 '자식클래스이름 extends 부모클래스'로 정의한다. 자식 클래스 호출시 부모 클래스도 함께 호출 된다. 자식 클래스의 경우 우리 눈에는 안 보이지만 상속 받은 코드가 숨어있다고 생각하면 된다. 2. 메소드 오버라이딩(Method Overriding) 부모 클래스의 메소드에 약간의 기능을 추가한 자식 클래스의 메소드를 만들 경우, 새로운 메소드를 만들지 않고 상속받은 함수를 재활용하여 코드를 작성할 수 있다. 이를 오버라이딩이라고 한다. 오버라이딩: 부모 클래스에서 상속받은 메소드를..
Java - 접근제어자와 getter/setter, 캡슐화
1. 접근제어자 Java의 멤버변수와 메소드에는 접근제어자를 지정할 수 있다. 접근제어자의 위치는 데이터타입의 왼쪽이다. 아무것도 적지 않는다(default) : 같은 패키지 내에서만 접근 가능 public : 아무 곳에서나 접근 가능 private : 선언된 클래스 내에서만 접근 가능 protected : 같은 패키지나 상속관계 일 때 접근가능 2. getter / setter 멤버변수가 private으로 되어있으면, 외부에서 접근할 수 없기 때문에 클래스에 멤버변수 데이터를 가져오는 메소드, 저장하는 메소드가 있어야 한다. 이를 getter/ setter 라고 부른다 public class Member { private String name; private String tel; private Stri..
Java - this 키워드
1. this 멤버변수와 로컬변수는 메모리의 위치가 다르기 때문에 같은 변수명을 사용해도 된다. 하지만 그렇게 되면, 사람도 헷갈리고 컴퓨터도 헷갈린다. 따라서 this라는 키워드를 이용해서 구분해주는 용도로 쓴다. this는 객체 자기 자신을 의미, 자신의 메모리를 가르킴 전역 변수와 지역 변수를 구분짓기 위한 참조 변수 생성자의 파라미터 이름이 전역 변수와 이름이 같을 때 구분하기 위해 사용 클래스 변수, static 키워드에서는 this를 사용 할 수 없음 public class Member { private String name; private String tel; private String address; public Member(){ } public Member(String name, Stri..
Java - 생성자(Constructor)
1. 생성자(Constructor) 생성자는 객체 생성시 자동으로 호출되는 메소드로 멤버 변수의 초기화나, 객체가 생성되자마자 실행해야 할 코드로 구성된다. 생성자는 함수 타입이 없고, 객체를 생성할 때를 제외하고는 클래스 밖에서 호출할 수 없다는 점을 제외하면 일반 메소드와 동일하다. 생성자의 특징은 다음과 같다. 함수 타입(리턴값)이 없다. 이름은 항상 클래스의 이름과 같다. 오버로딩이 가능하므로 여러 개 만들 수 있다. 2. 생성자 오버로딩으로 초기값 저장하기 주의할 점으로, 원래 디폴트 생성자는 눈에 안 보이고 자동으로 만들어지는데 생성자 오버로딩으로 생성자를 만들 경우에는, 반드시 디폴트 생성자도 눈에 보이게 코드로 적어줘야 한다. // 주소록 서비스를 개발하고 있다. public class M..
Java - 메소드 오버로딩(Method Overloading)
오버로딩 (Overloading) 같은 이름의 메소드를 중복하여 정의하는 것. 파라미터의 데이터 타입이나 파라미터의 갯수가 다른 경우, 하나의 메소드 이름으로 처리할 수 있도록 해주는 기능. 샘플 코드 public class Add { // 두 정수를 더해서 합을 리턴하는 메소드 int add(int x, int y) { return x + y; } // 두 실수를 더해서 합을 리턴하는 메소드 double add(double x, double y) { return x + y; } // 문자열을 붙여서 리턴하는 메소드 String add(String x, String y){ return x + y; } // 세 정수의 합을 리턴하는 메소드 int add(int x, int y, int z) { return..
Java - 클래스와 객체, 메모리 이해하기
1. 클래스 (Class) 객체 지향 프로그래밍에서 특정 객체를 생성하기 위한 일종의 틀을 의미 연관되어 있는 변수와 메소드의 집합 클래스 안에 있는 변수를 멤버 변수, 클래스 안의 메소드를 멤버 메소드라고 한다. 2. 객체 (Object) 클래스에 선언된 모양 그대로 메모리에 생성된 실체 3. 객체의 선언 및 생성 (메모리 할당) public class Product { // 변수인데, 클래스 안에 있는 변수: 멤버변수라 하고, // 이 변수들은 어디 생긴다? Heap 메모리에 생긴다!!! int number; String name; // 클래스는 메소드도 있다. // 아래처럼 출력하는 메소드 만든다. // 제품번호 : 1, 제품명 : 컴퓨터 void print() { System.out.println..
Java - 함수(function)를 정의하는 방법
1. 함수의 형식 2. 함수의 타입 리턴값을 가지는 경우 함수명 앞에 type을 정의하고, 함수의 type과 리턴 값의 type은 동일해야 한다. 리턴값을 가지지 않는 경우 함수 타입을 void로 정의한다. 샘플 코드 // 더하기 함수 int add(int a, int b) { int total = a + b; return total; } // size를 입력 받아서 등급을 매기는 함수 String getGrade(int size) { if (size >= 16 && size = 8 && size = 1 && size
Java - 배열(array)의 생성과 데이터 액세스
1. Array 자바의 가장 기본적인, 데이터를 여러개 저장하는 데이터 스트럭쳐는 Array 이다. 하지만 자바의 Array는 사용하기가 귀찮게 되어있다. 따라서 실무에서는 ArrayList와 HashMap을 사용한다. 2. Array 선언과 생성 배열 선언 : 자료형 [] 변수이름; 배열 생성 : 변수이름 = new 자료형[n]; 자바의 배열은, 생성할 때 저장할 데이터 갯수(n)를 꼭 지정해야 한다. 배열의 선언과 생성은 한 줄로도 표현 가능. int[] Arr; // 배열 선언 Arr = new int[5]; // 배열 생성 int[] Arr2 = new int[5]; // 배열 선언과 생성 배열의 길이 구하는 방법 Arr.length 3. Array에 값 입력 1) 초기화 (선언 시 값을 할당) ..