목록JAVA (42)
코딩항해기
추상클래스 abstract class클래스를 구성하는 멤버 중 추상 메소드가 존재한다.(추상클래스 안에 일반클래스도 함께 선언 가능)추상 메소드가 한 개 이상 있는 클래스는 반드시 추상 클래스로 선언해야한다.추상메소드 abstract method중괄호가 없이(즉, 구현부가 없이) 선언만 하는 메소드를 의미한다.abstract 리턴타입 메소드명(자료형 매개변수); *abstract 키워드를 써야하며, 마지막에 세미콜론을 붙여야한다. 추상 클래스, 추상메소드 선언abstract class 클래스명{abstract 리턴타입 메소드명(자료형 매개변수);일반 메소드도 선언 가능} abstract 키워드를 사용한 경우(==추상클래스), 객체화할 수 없다.따라서 추상 클래스를 객체화하기 위해서는 추상클래스를 상속받..
스태틱 static 정적인의 의미를 갖고 있으며, 객체와 무관하게 프로그램에 종속되어있다.자바의 저장공간이 프로그램이 시작되고 끝날 때까지 계속 유지된다면 정적이다.(프로그램 실행 도중에 생기거나 사라질 수 있다면 동적이다.) static 생성과 종료 시점프로그램은 실행시키면 그 프로그램이 실행되는데 필요한 정보를 JVM안에 클래스로더가 작성한 코드가 실행되기 직전에 읽어들이고 다 읽고 나면 실행된다.static이 붙은 멤버는 클래스 정보를 읽어오는 시점에 미리 만들어진다.실행과 동시에 만들어져 method 영역에 저장되어 있는 static 저장공간은 프로그램이 종료되어야만 메모리에서 사라진다.[static 키워드에 따른 변수/메소드 호칭 차이]변수static Ostatic 변수, 클래스 변수, 정적 변..
오버로딩 (Overloading)다형성 중 하나로,오버로딩(메소드 오버로딩, 생성자 오버로딩), 오버라이딩(재정의), 참조변수의 다형성이 다형성에 속한다. 그 중 오늘은 Overloading과생성자 오버라이딩 때 사용되는 this()까지 정리해보았다. [요약]메소드 오버로딩 매개변수의 순서, 개수, 타입이 다를 때 같은 이름의 메소드명으로 선언 생성자 오버로딩 매개변수의 타입, 개수, 순서가 다르면 같은 이름의 생성자로 선언 this객체 자기자신을 의미한다.this()객체 자기자신의 생성자를 의미한다. (매개변수의 순서, 타입, 개수로 생성자 구분) 메소드 오버로딩 (Overloading) 매개변수의 순서, 개수, 타입이 다를 때 같은 이름의 메소드명으로 선언할 수 있다. 메서드 시그니처 중 반환..
클래스 (class)클래스는 객체지향언어의 기본 단위로, 자료형이다. 클래스를 구체화, 객체화 한 것(메모리에 할당시킨 것)이 객체이다. [요약]클래스 구조class 클래스명{ 자료형 변수;리턴타입 메소드(자료형 매개변수){ 실행할 코드; return 리턴값; }생성자명[클래스명과 동일함](리턴타입 매개변수){ [super();] this.필드명 = 매개변수명[또는 초기값]; }}객체화 클래스명 참조변수명 = new 생성자명(); [이전 객체 관련 글] [JAVA] 객체 생성하기[관련한 이전 글 보기] [JAVA] 객체와 객체지향언어 장단점객체 지향 프로그래밍Object Oriented Programming java는 객체지..
제어문, 흐름제어문프로그램의 흐름(제어방향)을 제어할 때 사용한다.조건문, 반복문, 기타제어문이 있다. [조건문] if, switch조건에 따라 코드의 실행여부를 결정하는 구문으로 if문과 switch문이 있다.반복문과 달리 코드는 조건이 true일 때 한 번만 실행된다.if문은 if문, if~else문, if~else if문으로 나뉘게 된다. if문조건식의 결과에 따라서 분기처리할 때 사용한다.조건식의 결과가 true라면 영역 안의 코드가 실행되고, false라면 실행되지 않고 넘어간다.if문이 끝나고 오는 코드는 if문과 관계없이 실행된다.if (조건식) { 실행할 코드; //조건식의 결과가 true일 때만 실행 } if~else문if~else문은 if문에서 false의 경우를 처리할 수 없었던 단..
객체지향언어의 4가지 특징캡슐화, 상속, 추상화, 다형성 [요약]캡슐화코드의 내용이 외부로부터 보호되어 있어 코드 내용을 다 알지 못해도 기능을 사용할 수 있다는 특징상속부모(상위) 클래스의 내용(필드,메소드)을 자식(하위) 클래스가 extends(상속)하면 자식이 별도로 정의하지 않아도 부모의 내용(필드,메소드)을 모두 사용할 수 있다는 특징추상화유연하고 변경에 열려있는 프로그램을 설계하기 위해 역할과 구현을 분리할 수 있다는 특징다형성객체 간의 관계를 보다 유연하고 확장이 용이한 설계가 가능하도록 할 수 있다는 특징 [캡슐화]캡슐화란 클래스 안의 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것을 의미한다. 데이터 보호(data protection), 데이터 은닉..
[관련한 이전 글 보기] [JAVA] 객체와 객체지향언어 장단점객체 지향 프로그래밍Object Oriented Programming java는 객체지향 프로그래밍 언어이다.객체지향 프로그래밍 언어로는 java, c#, python 등이 있다. 그 외의 방식으로는 절차지향 프로그래밍 언어가 있으minibcake.tistory.com 객체 생성은 클래스를 생성 후 메모리에 할당(구체화) 시키는 것을 의미한다. 예시로 [TV]클래스와 필드(속성), 메소드(기능)을 생성하고 구체화시키는 법을 정리하겠다. (속성) 먼저 채널, 볼륨, 색상, 이름 필드와 (기능) 티비 정보, 볼륨 올리기, 내리기, 채널 올리기, 내리기 기능을 가진 (이름) ClassicTv 클래스를 구현해보겠다.package home0622;pu..
객체 지향 프로그래밍Object Oriented Programming java는 객체지향 프로그래밍 언어이다.객체지향 프로그래밍 언어로는 java, c#, python 등이 있다. 그 외의 방식으로는 절차지향 프로그래밍 언어가 있으며,대표적인 예로는 C언어가 있다. [객체 / 인스턴스] 객체지향 프로그래밍 언어는 실세계를 '객체'라는 단위로 나누어 생각하게 되고, 문제를 '객체' 단위로 처리한다.따라서 객체지향언어는 설계의 중요성이 높다. 객체란, 실제 사물 또는 개념을 의미한다. 인스턴스라고도 이야기하는데, 인스턴스는 클래스를 메모리에 할당시켜 구체화시킨 것이다.일반적으로는 객체와 인스턴스를 동일하게 봐도 무방하다. 객체는 속성과 동작으로 이루어져 있다. 속성은 멤버변수, filed, property..
[요약] Scanner sc = new Scanner(System.in); 입력클래스 선언.next()입력받은 값을 String 타입으로 반환하고 엔터를 소모하지 않음.nextLine()입력받은 값을 String 타입으로 반환하고 엔터를 소모함.nextInt()입력받은 값을 int 타입으로 반환하고 엔터를 소모하지 않음.nextDouble()입력받은 값을 double 타입으로 반환하고 엔터를 소모하지 않음 [입력클래스] 콘솔창을 통해 사용자로부터 입력값을 받기 위해서는 먼저 입력클래스를 선언해주어야한다.Scanner 타입의 sc 변수에 Scanner 객체를를 생성한 뒤, Scanner클래스를 import(ctrl+shift+o) 시켜주어야한다.(일반적으로 변수명은 sc를 사용한다)Scanner sc ..
[요약]출력문println()전달된 값을 출력하고, 줄바꿈이된다.print() 전달된 값을 출력하고, 줄바꿈이 되지 않는다.printf()형식(서식 format)에 맞는 값을 넣어 출력하고, 줄바꿈이 되지 않는다. (형식지정자 사용)* 제어문자는 앞에 \(역슬래쉬)를 붙여서 사용 (\n \t \" \\ ...)형식지정자(서식문자)자료형형식지정자 int%ddecimal10진수정수%ooctal8진수정수%xhexadecimal16진수정수double%ffloat소수점 6자리까지실수char%ccharacter 문자String%sString 문자열 형식지정자(서식문자) 옵션%[- or 0][n][.m] 서식문자- : 왼쪽 정렬0 : 비어있는 공간을 0으로 채움(숫자자료형만가능)n : 자리수.m : 소수점 아..