목록분류 전체보기 (24)
hyeongwoo's blog
다형성(Polymorphism) 프로그래밍에서 하나의 객체가 여러타입의 인스턴스를 참조할 수 있는 것이다. 자바에서 다형성은 클래스상속과 인터페이스구현을 통해 이루어진다. 다형성 조건 클래스가 상속 관계이거나 인터페이스 구현관계이어야한다. 부모클래스가 자식클래스(상속받는클래스)를 참조해야한다. 자식클래스에서는 부모클래스나 인터페이스의 메소드를 반드시 오버라이딩 해야한다. 자식클래스는 부모클래스로 업캐스팅 되어야한다 자식클래스로 부모클래스는 참조가 불가하다. 오버라이딩 이외의 자식클래스의 유일 메소드에는 부모클래스의 참조변수로 접근이 불가하다. 다형성의 장점 여러개의 객체를 하나의 타입으로 관리할 수있다 객체의 재사용성이 높아진다 객체들의 확장에 용이하다. 다형성 예시 class Animal { publi..
[상속] 상속은 자식이 부모로부터 물려받는것을 의미한다. 자바에서 상속도 같은 의미이다 . 클래스가 클래스로 물려주는 형태가 존재 , 물려주는 클래스는 부모클래스, 물려받는 클래스는 자식클래스라고 한다. 여러클래스에서 같은 코드를 사용할때,아니면 클래스를 재사용할때 번거러움을 줄이기 위해 클래스의 상속관계를 이용하여 중복을 줄여 효율적인 프로그래밍을 할 수 있다. [Java에서의 상속] 다른 클래스가 가지고 있는 멤버들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능이다. 목적 클래스의 재사용 연관된 일련의 클래스들에 대한 공통적인 규약정의 사람이 사용하기위한 규칙을 설정 장점 보다 적은 양의 코드로 새로운 클래스를 작성할수 있다. 코드를 공..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bRAOjI/btsDQT3fT7Q/LNirD0N2grjp7BkALmu3R0/img.png)
함수 어떤 기능을 수행하는 박스 어떤 값을 넣으면 함수에 대한 의도한 값이 나온다. 메소드 클래스안에 있는 함수 자바에서 함수는 모두 클래스안에 존재하므로 모두 메소드이다. public class MyClass{ public void my_method1(){ //반환형이 void //내용 } public int my_method2(){ //반환형이 int return 1; } } 반환형 메소드의 실행결과로 나오는 값 자료형타입에따라 반환형이 달라진다. return 문을 사용한다. 반환형이 없을수도 있다.(void) 매개변수 함수에 값을 전달해주는 변수 여러개가 들어갈 수 있다. 자바의 main 메소드 프로그램의 시작은 main메소드에서 한다. 자바에서 무조건 한개는 있어야한다. 자바 컴파일러가 어디서든 ..
자바에서 this 는 자신의 객체의 인스턴스를 참조하는 데 사용한다 클래스 내부에서만 사용이 가능하다 this 사용 현재 객체의 필드 참조 해당 클래스의 필드를 명확하게 참조 가능하다 메소드의 매개변수이름과 클래스 필드 이름이 같을때 사용시 유용하다. 생성자 오버로딩에서 사용 클래스에 여러 생성자가 있을때 한 생성자에서 다른 생성자를 호출 가능하다. 메소드 체이닝 메소드가 this를 반환시 같은 객체에대해 연속된 메소드 호출이 가능하다. this 사용 예시 자동차 클래스를 만들어 예시를 들었다. public class Car { //필드 선언 private String color; // 차의 색 private int speed; // 차의 속도 // 생성자 오버로딩 public Car() { this("..
데이터(속성)와 기능(메소드)를 포함하는 자료형이다. 객체를 생성시키기 위한 설계도이다. 필드 데이터(속성)값이 저장되는 곳이다. 멤버 변수라고도 불리며 객체의 상태를 나타내는 변수이다. 인스턴스에 속하는 비정적(non-static)필드와 클래스에속하는 정적(static) 필드로 나뉜다.메소드메소드는 객체의 동작이나 행위에 해당되는 코드 블록이다.클래스내의의 정의된 함수로 다양한 기능을 수행한다. 예를들어 객체의 데이터를 처리하거나 다른 메소드를 호출하는 작업을 수행한다.생성자객체가 생성될때 가장 먼저 호출되는 특별한 메소드이다.생성자의 이름은 클래스 이름과 같아야한다.new 연산자를 통해 호출되며 객체의 초기 상태를 설정한다.객체의 데이터 초기화와 메소드 초기화를 한다. 매개변수 타입과 개수가 다른 생..
객체와 현실세계 객체는 현실세계에 독립적으로 존재하는 모든것들을 의미한다. 예를들어 자동차,동물,건물,컴퓨터..등 주변에 모든 물체와 사물들은 객체라고 보면 된다. 이러한 객체들은 현실세계에서 서로 상호작용하며 구성된다. 객체 지향 프로그래밍 객체 지향 프로그래밍(OOP ,object-Oriented Programming)은 현실세계의 객체들간의 상호작용을 프로그래밍을 통해 가상 세계로 구현하는 과정이다. 프로그래밍에서 객체를 만들기 위해서는 먼저 추상화 과정을 거쳐 클래스를 정의해야한다 자바에서의 객체 자바에서 객체생성은 인스턴스 생성후 참조변수가 인스턴스주소를 가지고 인스턴스를 참조하는 것이다. 이러한 참조변수는 자바에서는 객체라고 부른다. 객체지향 프로그래밍 특성 추상화 객체들이 가지는 공통적인 속..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bovYQe/btsDNrrJJD6/8lRY3kvQ8WPOjYK7yaE4k1/img.png)
자바에서 반복문의 개념은 간단하지만 막상 활용하려면 헷갈린다. 그래서 연습삼아 반복문을 활용하여 별찍기를 해보겠다 별을 찍어서 총 4종류의 피라미드를 만들었다. 자바의 반복문을 이용해서 별을 찍었다 별을 찍기전에 저 모양들의 패턴을 분석했다. 프로그램은 일반적으로 왼쪽에서 오른쪽, 위에서 아래로 실행된다. 그러므로 첫째줄부터 왼쪽에서 오른쪽으로 그다음 줄 왼쪽에서 오른쪽으로 실행된다고 보면된다. 각줄은 공백-별 패턴이 반복된다. 줄이 정해져있고 반복 횟수가 정해져있으므로 for문을 사용했다. 각줄의 최대 별개수를 입력해 별을 찍는 코드이다. 피라미드 공백은 한개씩 줄어들고 별은 1개씩 늘어난다 void 피라미드() { Scanner sc =new Scanner(System.in); System.out.p..
조건문 조건식을 통해 참 또는 거짓을 판단하여 참일경우 해당하는 코드를 실행 조건문에는 if와 switch가 있다. if 문 if(조건식){ //실행문1 }else if(조건식2) { //실행문2 } else{ //실행문3 } switch문 switch(비교대상(정수,문자,문자열)){ case 값1 : 실행코드; break; case 값2 : 실행코드2; break; // ... default: 위의 값들이 모두 일치하지 않았을때 실행하는 코드; }
프로그램의 흐름을 제어하는 제어문으로 특정 코드 블록을 반복해서 실행한다. for 문 특정 횟수만큼 반복되는 경우에 사용한다 길이가 제한된 반복에 적합하다. for (초기식; 조건식; 증감식) { // 본문 내용 } for (int i = 0; i < 10; i++) { System.out.println(i); } while 문 조건이 참인 동안 계속해서 반복실행된다. 정확한 반복 횟수를 모를때 유용하다. while (조건식) { // 본문 내용 } int i = 0; while (i < 10) { System.out.println(i); i++; } do-while 조건과 관계없이 최소 한번은 본문이 실행된다. 적어도 한번은 실행이 보장되어야하는 경우에 사용 do { // 본문 내용 } while (조..
배열 복사 배열은 객체이므로 객체의 복사에대해서 알아본다 객체의 복사는 얕은복사와 깊은 복사가 있다. 얕은 복사 원본 객체의 주소 값만 가져와 복사본 객체의 참조형 변수에 저장하는것 하나의 객체를 두변수가 참조한다. 원본값을 변경하면 복사복 객체도 변경되는 문제점이 있다. 깊은 복사 다른 메모리 주소의 변수로 객체의 값들을 복사하는것 얕은 복사의 문제점을 해결해준다 배열 복사 얕은복사 배열의 주소만 다른 변수로 복사한다 두개의 참조변수가 같은 배열 객체의 주소를 참조한다 깊은 복사 다른 메모리주의 공간으로 배열의 값들을 복사한다 원본 배열의 참조변수와 복사된 배열의 참조변수는 서로 다른 메모리주소를 참조한다 자바에서 배열의 깊은 복사 방법 for문으로 직접복사 Arrays클래스에서 제공하는 copyof(..