상속(inheritance)
·
Java/Java Concept
상속이란 기존 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것이다. 객체 지향 프로그래밍을 구성하는 특징 중 하나이다. 상속을 이용하면 기존 클래스의 모든 필드와 메소드를 물려 받아 새로운 클래스를 정의할 수 있다. 기존 클래스 : 부모클래스(parent class), 상위클래스(super class), 기초 클래스(base class) 새로운 클래스 : 자식클래스(child class), 하위클래스(sub class), 파생클래스(derived class) 상속의 장점 기존 클래스 재활용 계층적 관계 구성(상하관계 구분) 자식 클래스 사용법 (새롭게 만든 클래스) class 자식클래스이름 extends 부모클래스이름 즉 자식클래스 안에 부모클래스가 들어가있음을 확인할 수 있다. ※중요..
메소드의 구분(클래스 메소드, 인스턴스 메소드)
·
Java/Java Concept
class LoginPage{ boolean success; //인스턴스 변수 void Login(){ success = true; } //인스턴스 메소드 static void classLogin(boolean success){ return success; } //클래스 메소드 } 반환형 앞에 static 키워드가 존재하면 클래스 메소드(static method)라 하며 그렇지 않으면 인스턴스 메소드(instance method)라고 한다. 그렇다면 이 둘의 차이는 무엇일까? 클래스 메소드는 인스턴스(객체)를 생성하지 않고도 바로 접근이 가능하다. System.out.println(LoginPage.classLogin(true)); // 클래스 메소드 LoginPage myLoginPage = new L..
필드의 구분(클래스 변수, 인스턴스 변수, 지역 변수)
·
Java/Java Concept
자바에서 필드는 세 가지로 구분된다. 변수 생성시기 소멸시기 접근방법 클래스 변수 클래스가 메모리에 올라갈때 프로그램 종료시 클래스이름.변수이름 인스턴스 변수 인스턴스 생성시 인스턴스 소멸시 인스턴스이름.변수이름 지역 변수 블록 내에서 변수 선언시 블록을 벗어날시 변수이름 static int 변수이름 int 변수이름 //class 내에 사용하면 인스턴스 변수 + public class 내에 사용하면 지역 변수 클래스 변수는 모든 인스턴스(객체)가 같은 값을 공유하지만, 인스턴스 변수는 그렇지 않고 고유한 값을 지닌다. http://www.tcpschool.com/java/java_member_field 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파..
접근제어자 + 제어자 개념
·
Java/Java Concept
접근 제어자 : 클래스의 접근 범위를 제한하기 위한 제어자이다. public : 접근제한 x protected : 같은 패키지 + 다른 패키지의 자식 클래스에서 접근 o default : 같은 패키지 내에서만 접근 o(자료형 앞에 아무 것도 쓰지 않았을 때) private : 같은 클래스에서만 접근 o 허용 범위 : public > protected > default > private 접근 제어자 같은 클래스 같은 패키지 자식 클래스 그 외 public o o o o protected o o o x default o o x x private o x x x 기타 제어자 final : 변경할 수 없는 상수(constant)를 의미한다. (c,c++ 관점에서 바라볼 때 const와 같은 의미이다) final을..
패키지(package) 개념
·
Java/Java Concept
패키지란? 클래스 + 인터페이스의 집합이다. 하나의 디렉터리를 의미 장점: 1. 파일관리의 효율성이 증대 2. 이름 충돌 문제 해결 패키지는 다른 패키지를 포함할 있다. ex)java.lang.String 패키지의 선언 문법 package 패키지이름; import문의 사용 선언한 패키지에 속한 클래스를 다른 파일에서 사용하기 위함이 목적이다. 문법 import 패키지이름.클래스이름 import 패키지이름.* 자바에서 가장 많이 사용하는 java.lang 패키지에 대해서는 import를 사용하지 않아도 사용할 수 있게 되어있다.
메소드 오버로딩
·
Java/Java Concept
메소드 오버로딩(method overloading)이란 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다. 메소드 오버로딩의 장점: 1. 메소드에 사용되는 이름 절약 2. 매개변수 타입이나 개수 고려 x 3. 다형성 구현 메소드 원형 1. println() 2. println(boolean x) 3. println(char x) 4. println(char[] x) 5. println(double x) 6. println(float x) 7. println(int x) 8. println(long x) 9. println(Object x) 10. println(String x) 메소드 오버로딩의 조건 1.메소드의 이름이 같아야 한다. 2.메소드의 시그니처, 즉 매개변수의 개수 또는 타입이 달라야 한다..
this와 this()
·
Java/Java Concept
this 참조 변수 this 참조 변수는 인스턴스가 자기 자신을 참조하는 변수이다. this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다. class Car { private String modelName; private int modelYear; private String color; private int maxSpeed; private int currentSpeed; Car(String modelName, int modelYear, String color, int maxSpeed) { this.modelName = modelName; this.modelYear = modelYear; this.color = color; this.maxSpeed = maxSpeed; this.currentSpeed..
생성자 개념
·
Java/Java Concept
생성자(constructor) 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공한다. 생성자 이름 = 클래스 이름 Car 클래스의 생성자 이름 => Car 생성자의 특징 1.생성자는 반환값이 없지만, 반환타입을 void형으로 선언하지 않는다. 2.생성자는 초기화를 위한 데이터를 인수로 받을 수 있다. 3.객체를 초기화하는 방법이 여러개 있을 때는 하나의 클래스가 여러개의 생성자를 가질 수 있다.(매개변수가 여러 개 일때),메소드 오버로딩이 가능하다. ex) Car(String modelName) {} Car(String modelName, int modelYear) {} Car(String modelName, int model..
메소드 개념
·
Java/Java Concept
클래스의 멤버는 필드(field)와 메소드(method)로 구성되어있다. 메소드(method): 특정 작업을 수행하기 위한 명령문의 집합이다.(함수로 생각하면 편리) 메소드의 사용목적 : 1. 코드의 중복성 해소 2. 모듈화로 인한 가독성 증대 3. 유지, 보수가 편리하다. 메소드 정의 접근제어자 반환타입 메소드이름(매개변수목록,parameters)//선언부{ //구현부 } Car의 클래스 accelerate() 메소드 정의 class Car { private int currentSpeed; private int accelerationTime; ... ① public void accelerate(int speed, int second) { // 선언부 // 구현부 System.out.println(sec..
클래스 선언
·
Java/Java Concept
접근제어자 class 클래스이름{ 접근제어자 필드1의 타입 필드1의 이름; 접근제어자 필드2의 타입 필드2의 이름; 접근제어자 메소드1의 원형 접근제어자 메소드2의 원형 } 인스턴스의 생성: 1. 참조변수 선언: 클래스이름 객체참조변수이름; ex)Car myCar; 2. 인스턴스 생성: 클래스이름 객체참조변수이름 = new 클래스이름(); ex) Car myCar = new Car(); 참고자료 출처 http://www.tcpschool.com/java/java_class_declaration 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com