목록Java (48)
미누에요

추상 클래스(abstract class)추상 메서드(abstract method)가 포함된 클래스추상 메서드가 하나라도 포함되면, 그 클래스는 추상 클래스로 선언해야한다. 다중 상속이 불가능하다추상 메소드 외에 일반 메소드, 생성자, 필드를 가질 수 있다."상속 관계"에 초점이 맞춰져있다.객체를 생성할 수 없다.추상 클래스를 추상 클래스에 상속할수도 있다.import java.util.Stack;abstract class Animal{ // 추상 클래스 Animal public Animal(){} public void eat(){ System.out.println("I am eating now"); } abstract public void cry();}class Cat ..

컬렉션이란 ? 요소(element)라고 불리는 가변 개수의 객체들의 저장소다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합요소로는 객체 타입만 가능!!! 컬렉션의 종류는 위 사진과 같다. 위 설명으로는 충분히 이해가 되지 않을 것이다.예를 들어, 연결리스트를 사용한다고 할 때, 우리는 연결리스트를 직접 구현하여 사용하게 된다.하지만 Java 에서는 LinkedList라는 컬렉션이 존재하기에 이것을 우리는 그냥 사용하면 된다. 이처럼 컬렉션은 자료구조와 이를 구현하는 클래스를 정의하는 인터페이스를 제공하게 된다. 제네릭이란 ?클래스에서 사용할 데이터 타입을 미리 지정하지 않고 외부에서 지정하도록 하는 기법 위 사진에서는 Person이라는 클래스를 제네릭을 사용하여..

상속(inheritance)클래스의 멤버변수와 메서드를 그대로 물려받는 것을 상속이라 한다. 물려주는 클래스가 부모 클래스, 물려받는 클래스는 자식 클래스이다.자식 클래스는 부모 클래스로부터 상속받아 추가적으로 멤버변수와 메서드를 작성할 수 있다.중복된 코드를 줄이고, 유지보수에 용이하다.상속은 extends 키워드를 사용한다.public class test{ public static void main(String[] args) { }} class A{ private int val; public void SayHi(){ System.out.println("HIII!!!"); }}class B extends A{// A 클래스를 상속받음} 위 코드를 보면 A라는 클래..

메소드 오버라이딩(method overriding)오버라이딩이란 부모 클래스에서 상속받은 메서드를 수정하고 싶을 때, 해당 메서드를 재정의하는 것이다.public class test{ public static void main(String[] args) { B b = new B(); b.SayHi(); }} class A{ private int val; public void SayHi(){ System.out.println("HIII!!!"); }}class B extends A{ } 위와 같이 A라는 클래스가 존재한다고 하자.A 클래스를 상속받아서 SayHi()를 실행한다면 무엇이 출력되는가 ? 부모 클래스의 메서드를 상속받은 것이기..

final Java에는 final이라는 키워드가 존재한다.final이라는 키워드는 기본적으로 상수화라는 의미를 가지고 있다. C/C++에서의 const와 비슷하다고 생각하면 될 거 같다. 이러한 final 키워드의 사용은 크게 4가지가 존재한다.인자로 final 키워드 사용final 변수final 메서드final 클래스 인자로 final 키워드 사용public class test { static void isPlus(final int val){ // 인자값에 final 키워드 사용 val = 8; // 인자로 받아온 값 변경시도 if(val>0){ System.out.println("양수입니다."); } else{ ..

일반적인 메서드클래스 내부의 일반적인 메서드는 객체를 생성한 후에 그 객체를 통해 해당 기능을 실행한다.public class test { public static void main(String[] args) { A a = new A(9); a.ShowVal(); }}class A{ private int val; public A(int val){ this.val = val; } public void ShowVal(){ System.out.println(this.val); }} 예를 들어, 위와 같은 코드는 A라는 클래스를 통해 객체 a를 생성한 후, ShowVal() 메서드를 사용하고 있는 모습이다.결과는 아래와 같다..

Java에서는 접근 지정자로 접근 가능 영역을 구분한다. public모든 곳에서 접근할 수 있다. protected 같은 패키지 내에서 접근이 가능하다.다른 패키지라도 상속받은 관계라면 접근이 가능하다. default(접근 지정자 없을 시 기본값으로 설정)같은 패키지 내에서 접근이 가능하다. private 동일한 클래스 내부에서만 접근이 가능하다. 접근 지정자접근 범위같은 클래스같은 패키지다른 패키지지만 상속관계다른 패키지public어디서든 접근 가능OOOOprotected동일 패키지 + 상속받은 클래스OOOXdefault같은 패키지에서만OOXXprivate같은 클래스에서만OXXX

instanceof 다형적 참조를 이용할 때, 여러가지 방법으로 참조를 하게 된다. 이럴 때, 어떤 변수가 어떤 타입의 값을 참조하고 있는지 헷갈릴 수 있다. 그럴 때 확인할 수 있는 방법이 instanceof이다. instanceof를 사용하는 방법에 대하여 알아보겠다. 우선 사용 형식이다. (인스턴스 이름) instanceof (타입 이름) 위 형식대로 작성한다면, (인스턴스 이름) 이 (타입 이름)의 인스턴스인지를 확인하여 true , false 로 출력한다. (인스턴스 이름) : 인스턴스를 참조한 변수 이름이 들어간다. (타입 이름) : 클래스 이름이 들어간다. 예시 코드 package practice.poly; public class instanceofex { public static void ..

다형성(polymorphism) 한 객체가 여러 개의 객체로 취급될 수 있는 것을 의미한다. 상속받는 관계의 Parent와 Child 클래스를 만들어 보겠다. Parent.java package practice.poly; public class Parent { public void pMethod(){ System.out.println("This is Parent's method"); } } Child.java package practice.poly; public class Child extends Parent{ public void cMthod(){ System.out.println("This is Child's method"); } } Main.java package practice.poly; publ..

this 객체지향 프로그래밍을 할 때, 클래스 내부의 메서드에서 내부변수에 접근할 때 사용한다. package test; public class classEx { int num; void addNum(int num) { num += num; } void showNum(){ System.out.println("num = "+num); } } 위와 같이 클래스 내부에 num이라는 내부변수가 존재하는데, addNum이라는 메서드에서 매개변수로 받아온 num을 내부변수의 num에 저장하고 싶다. 두 변수의 이름이 같다. 따라서 그냥 위처럼 작성하고 실행한다면 package test; public class classMain { public static void main(String[] args) { classE..