[JAVA] 객체지향 - 호출 스택
·
Back-End/Java
[작성일: 2023. 01. 25]  호출 스택(Call Stack)스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓임메서드 수행에 필요한 메모리가 제공되는 공간메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제 public static void main(String[] args) { System.out.println("Hello!"); }}    예제 분석을 단계별로 그려가면서 공부하면 프로그램을 실행하지 않고도 이해할 수 있음.코드를 보면서 단계별로 스택에 어떤 변화가 일어나는지 그려보면서 공부하기          🐣 해당 게시글은 자바의 정석(남궁성 님) 영상으로 함께 공부하며 요약/정리한 글입니다.🐣 입문 개발자가 작성한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.
[JAVA] 객체지향 - 객체 생성, 사용, 배열
·
Back-End/Java
[작성일: 2023. 01. 25] 객체의 생성리모컨과 객체타입이 일치해야 함.객체를 사용하려면 반드시 리모컨이 필요함.클래스명 변수명;변수명 = new 클래스명();Tv t; // Tv클래스 타입의 참조변수 t 선언t = new Tv(); // Tv인스턴스 생성 후 생성된 Tv인스턴스의 주소를 t에 저장     객체의 사용Tv t;t = new Tv(); // 객체 생성t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다 , 변수 사용t.channelDown(); // Tv인스턴스의 '메서드 호출', 메서드 사용// 객체 사용System.out.println("현재 채널은" + t.channel + "입니다."); // 현재 채널은 6입니다.class TV { // t..
[JAVA] 변수 초기화
·
Back-End/Java
[작성일: 2023. 01. 26] 목차 변수의 초기화지역변수(lv)는 수동초기화 해야 함(사용 전 꼭!!!!)메서드는 호출 스택에 계속 쌓였다가 지워졌다가 하기 때문에 생명주기가 굉장히 짧음. 매번 0으로 초기화하면 성능이 떨어지기 때문에 새로운 값으로 덮어써야 함. (수동 초기화)멤버변수(iv, cv)는 자동 초기화됨.타입마다 다르지만 근본적으로는 0으로 초기화됨.class InitTest { int x; // 인스턴스 변수, 자동 초기화 int y = x; // 인스턴스 변수(iv) void method1() { int i; // 지역변수(lv) int j = i; // 에러. 지역변수를 초기화하지 않음.     멤버변수(iv, cv)의 초기화클래스 변수..
[JAVA] 객체지향 - 오버로딩
·
Back-End/Java
[작성일: 2023. 01. 25]  오버로딩(Overloading)한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것메서드 : 메서드 이름 = n : 1ex) println(매개변수)void println()void println(boolean x)void println(char x)void println(char[] x)void println(double x)void println(float x)void println(int x)void println(long x)void println(Object x)void println(String x)     오버로딩이 성립하기 위한 조건메서드 이름이 같아야 함.매개변수의 개수 또는 타입이 달라야 함.반환 타입은 영향없음.ex 1)int add(int a..
[JAVA] 객체지향 - this
·
Back-End/Java
[작성일: 2023. 01. 25]  생성자 this()같은 클래스 생성자에서 다른 생성자를 호출할 때 사용클래스 이름 대신 this() 사용다른 생성자 호출 시 첫 줄에서만 사용 가능첫 줄이 아닐 경우 에러.코드 중복을 제거하기 위해 생성자들끼리 서로 호출함.class Car2 { String color; String gearType; int door; Car2() { this("white", "auto", 4); } // Car2(String color, String gearType, int door)를 호출 Car(String color) { this(color, "auto", 4); } // Car2(String color, String gearType, ..
[JAVA] 객체지향 - 역사, 인스턴스, 클래스
·
Back-End/Java
[작성일: 2023. 01. 25] 객체지향언어역사과학, 군사적 모의실험을 위해 컴퓨터를 이용한 가상세계를 구현하려는 노력으로부터 객체지향이론이 시작됨.1960년대 최초의 객체지향언어 Simula 탄생1980년대 절차방식의 프로그래밍의 한계를 객체지향방식으로 극복하려고 노력함. (C++, Smalltalk와 같은 보다 발전된 객체지향언어 탄생)1995년 말 Java 탄생. 객체지향언어가 프로그래밍 언어의 주류가 됨.   정의클래스(Class)설계도객체를 정의한 것. 객체를 생성하는 데 사용됨. 객체설계도로 만든 제품실제로 존재하는 것객체의 속성과 기능에 따라 용도가 다름. 클래스객체제품 설계도제품TV 설계도TV 클래스는 객체로 구현될 때 의미가 있음(=제품으로 만들어지지 않는 설계도는 의미가 없음.) ➡..