프로그래밍/JAVA 18

메소드 오버로딩(overloading) vs 메소드 오버라이딩(overriding)

메소드 오버로딩(Method Overloading)같은 이름을 가진 메소드를 여러개 정의하는 것. (메소드 이름은 같고, 매개변수의 선언이 다른 메소드를 만드는 것)인자는 다르지만 기능은 같은 메소드들을 하나의 메소드 이름으로 접근한다는 개념.생성자, 기타 다른 메소드에 적용가능사용이유 : 하나의 메소드 이름에 하나의 형채로만 메소드가 정의 된다면, 인자가 다르지만 같은 기능을 하는 메소드들을 각기 다른 이름으로 설정해야 한다. 사용자는 같은 기능의 메소드라도 인자의 형태에 따라 일일이 메소드의 이름을 기억해야한다.이러한 이유로 메소드의 이름은 그대로 사용하면서 다양한 형태의 메소드를 정의 하면, 어떠한 형태의 인자를 사용더라도 해당 기능을 맡은 메소드 이름만 기억하면 된다. ※ 오버로딩의 주의사항메소드..

객체지향에서의 다형성

다형성 정의같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해줌 전제 부모클래스의 참조변수로 자식클래스의 객체를 참조할 수 있음(자식클래스의 객체에는 부모클래스로 만든 객체를 포함하니까) 부모클래스의 참조변수로 자식클래스 객체를 참조했을때는 부모클래스에 존재하는 멤버에만 접근이 가능함부모클래스의 참조변수로 자식클래스의 객체를 참조해서 부모클래스에 존재하는 멤버함수 호출 시 자식클래스에서 해당 메소드를 오버라이딩 했다면 실제 호출되는 함수는 자식에서 오버라이딩한 메소드가 호출됨(동적 바인딩)

상속 개념파악하기!

부모 클래스(슈퍼 클래스) 와 자식 클래스(서브 클래스) 의 관계를 파악하기 위한 프로그램 부모 클래스class Parent{int data = 100;public void print(){System.out.println("부모임");}} 자식 클래스class Child extends Parent{int data = 200; public void print(){super.print();System.out.println("자식임");System.out.println("data : " + data);System.out.println("this.data : " +this.data);System.out.println("super.data : " +super.data);}} 메인 함수public class Par..

정적 변수 (static variable)

정적변수 (static variable)정의모든 객체를 통틀어서 하나만 있는 변수멤버변수와 다르게 객체를 생성하지 않아도, 아무리 많은 객체가 생성되어도 하나만 존재하는 변수 정적변수의 용도1. 모든 객체가 하나의 데이터를 공유하기 위해2. 클래스내에서 공통적으로 쓰이는 (객체 마다 같은 값) 변수를 사용하기 위해서 ▶ 메모리 낭비를 방지함

변수의 종류 와 사용영역

지역변수메소드(함수) 내에서 생성하는 변수.메소드(함수) 종료시 사라짐.스택영역에 생성됨. 멤버변수해당 클래스가 객체화 될때마다 각 객체 내에서 생성됨해당 객채가 소멸될때 사라짐= 필드변수= 인스턴트변수 정적변수클래스 내부에서 static 키워드를 포함해서 정의프로그램이 실행될때 생성되서 프로그램이 종료될 때 사라짐= 클래스 변수

클래스의 메모리 구조 및 참조관계

Point 클래스와 Circle 클래스를 이용하여 원의 반지름(Radius), 중심값(Center)을 입력, 출력하는 프로그램 // 메인함수public class CircleTest { public static void main(String[] args) { Point p1 = new Point();Point p2 = new Point(2,3);Circle c1 = new Circle();c1.setRadius(20);System.out.println(p1);System.out.println(p2);System.out.println(c1);c1.setCenter(p2);System.out.println(c1);p2.setX(12);p2.setY(17);System.out.println(c1);} } pu..

선택정렬

선택정렬 코드선택 정렬(selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.주어진 리스트 중에 최솟값을 찾는다.그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. 선택정렬을 온몸으로 표현한 댄스 선택정렬 실행 알고리즘 에니메이션출처 : 위키백과 public class SelectionSort {public static void main(String[] args) {//정수배열 중에서 가장 작은 값의 위치를 찾기int[] arr = {3,2,5,4,1};int minPos;int minVal;for(int j = 0; j < arr.length; j++){minVal = arr[j];minPos = ..