본문 바로가기

Java20

java 상속 (Inheritance) 상속 (Inheritance): 원래 class(설계도면) 을 내려받는 상황 기존 클래스에서 필드 하나만 추가해야하는 상황이라면? class를 상속하여 쓰자! 구분 C# java C++ First parent super base ↑ ↑ ↑ ↑ Second child sub driven 언어마다 상위클래스 - 하위클래스를 부르는 명칭이 다르지만 현업에서는 보통 섞어서 쓴다. 다 알아두면 좋다. ※ 직관적으로 단어 뜻을 보면 누가 상위클래스인지 바로 알수는 있다. parent - child를 주로 쓰자. 상속의 문법적 사용 extends 상위클래스 {} class Member extends Person{ } 위 코드는 Person class를 상속받았다는 뜻이다. 상속을 해보자 step1 임의의 class(.. 2023. 1. 29.
Java_생성자 생성자 Constructor : 생성자는 new연산자로 호출되는 중괄호 {} 블록이다. 모든 클래스에 반드시 하나 이상 존재하며 클래스 내부에 선언을 생략하면 기본생성자가 자동으로 추가된다. 생성자를 쓰는 궁극적이유 : 멤버값를 초기화하기 위해서 그러니 전달받은 파라미터도 멤버변수에 대입해줘야한다. ※ 생성자도 클래스의 멤버이기 때문에 접근제한의 영향이 있음. 메소드임. 생성자를 만드는 규칙 2개 1. 메소드의 이름은 클래스의 이름과 같아야한다. 2. 리턴타입을 명시하지 않음. Ex01 ) public class First { //객체가 생성(new)될때 한번 자동으로 실행되는 아주 특별한 메소드 First(int n) { System.out.println("First int 생성자!! - " + n);.. 2023. 1. 28.
Java_인스턴스멤버와 Static(정적멤버) Static을 사용하는 이유는?? 필드마다 객체 값이 달라야한다면 , 객체마다 다른 필드값을 주는게 맞다. 하지만, 객체의 필드값이 모두 같아야한다면? (이런 경우가 필요하다면? ) 객체마다 갖고있다면 메모리 낭비가 너무 심하다. 그러므로, 어느 한곳에 필드를 위치시키고 객체들이 알아서 찾도록 하는게 좋다! 자바는 이런 이유로 클래스 멤버를 인스턴스멤버 / 정적멤버 2개로 구분한다. 구분 의미 인스턴스멤버 객체마다 갖고 있는 멤버 정적멤버 클래스에 위치시키고 객체들이 공유하는 멤버 인스턴스 멤버 :객체를 생성한 후 사용할 수 있는 필드와 메소드 객체 없이는 사용불가능 public class Student{ int age; void show(){ system.out.print("age : + age); }.. 2023. 1. 28.
Java_자바의 메모리 자바의 메모리 JVM 종류 메소드영역 static (지역변수,매개변수, 객체 제외 모든 것들) stack영역 지역변수,매개변수,참조변수 heap영역 객체 new하면 만들고 알아서지운다. (java를 돌리면 가비지컬렉터가 자동으로 가동되고 쓰레기값이라고 인식되면 알아서 치운다 ) - 예전 : 참조변수가 가르키는곳이 끊어지면 없어졌었다. 마지막에 good=null;해줌 - 현재 : 메소드가 끝나도 놔둠. 앱이 종료 될 때 지운다. 필드(멤버변수)와 지역변수는 언제 생성되는가? 생성 소멸 필드(멤버변수) new 명령문에 의해 객체가 생성 될 때 힙에 만들어짐. 지역변수 메소드에 호출되어 실행 될 때 stack영역에 생김. 메소드 종료되면 소멸(delete) 메모리에서 아예 삭제된다. ※ 필드는 자동 초기화, .. 2023. 1. 27.
Java_메서드 오버로딩, 가변 길이 인자 메서드 오버로딩 오버로딩 : 파라미터값만 다르게 받는 메서드 만약.... print()기능으로 여러가지 자료형을 출력하고 싶다면 ? 오버로딩을 활용하여 여러가지 자료값을 받아보도록 하자! ex) Main public class Main { public static void main(String[] args) { Test t=new Test(); t.show(); t.show(1, 2); } } Test class public class Test { void show() { System.out.println("매개변수 없음"); System.out.println(); } void show(int x, int y) { System.out.println("매개변수 있음!!!"); System.out.print.. 2023. 1. 27.
Java_패키지 패키지 클래스를 카테고리로별로 관리하기위해 만든것. 체계적으로 클래스를 관리하도록 도와준다. 【패키지선언】 package 패키지명; ※네이밍컨벤션 패키지명은 소문자로 만든다. 패키지 사용법 예를들어 나는 학교의 선생님인데 아이들의 인적사항이나 성적정보를 효율적으로 관리하려한다. class Person에는 이름,나이,주소 class Student에는 이름, 국어성적,영어성적 ※ 어느쪽이든 Student라고 써도 이상하진않다. 위 2개의 클래스는 내용은 다를순있지만 학생 정보라는것에는 틀림없다. 그래서 패키지를 만들어 넣어두자. aaa패키지에 Person클래스와 Student클래스를 묶어두었다. (관리가 용이함) 이제, Person클래스와 Student클래스를 살펴보자. class Person package.. 2023. 1. 27.