반응형 분류 전체보기47 [ Java ] 실전자바-기본편 8.final final 변수와 상수 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. final은 class,method를 포함한 여러곳에 붙을 수 있다. package final1; public class FinalLocalMain { public static void main(String[] args) { //final 지역 변수1 final int data1; data1 = 10; //최초 한번만 할당 가능 //data1 = 20; //컴파일 오류 //final 지역 변수2 final int data2 = 10; //data2 = 20; //컴파일 오류 method(10); } //final 매개변수 static void method(final int parameter) { //parameter =.. 2024. 2. 16. [ Java ] 실전자바-기본편 7. 자바 메모리 구조와 static 자바 메모리 구조 메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다. 스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다. 힙 영역: 객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. 쉽게 이야기해서 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참고로 배열도 이 영역에 생성된다. 메서드 영역: 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 클래스 정보: 클래스의 실행코드(바이트 코드), 필드 , 메서드와 생성자 코드등 모든 실행 코드가 존재한다. static 영역: static변수들을 보관한다. 런타임 상수 풀: 프로그램을 실행하는데 필요한 공통 리터럴 .. 2024. 2. 15. [ Java ] 실전자바-기본편 6. 접근 제어자 접근 제어자 이해 - 1 자바는 public, private 같은 접근 제어자를 제공, 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 필요한 이유 스피커 객체를 만들어볼껀데, 이때 스피커의 음량은 절대로 100을 넘으면 안되는 요구사항이 있다. (100을 넘어가면 스피커의 부품들이 고장난다.) package access; public class Speaker { int volume; Speaker(int volume) { this.volume = volume; } void volumeUp() { if (volume >= 100) { System.out.println("음량을 증가할 수 없습니다. 최대 음량입니다."); } else { volu.. 2024. 2. 14. [ Java ] 실전자바-기본편 5. 패키지 패키지 컴퓨터는 파일을 분류하기 위해 폴더,디렉토리라는 개념을 제공하는데 자바에서는 이것이 바로 패키지 이다. package pack; public class Data { public Data() { System.out.println("패키지 pack Data 생성"); } } 패키지를 사용하는 경우 항상 코드 첫줄에 package pack 과 같이 패키지 이름을 적어주어야 한다. 여기서는 pack 패키지에 Data 클래스를 만들었다. 이후에 Data 인스턴스가 생성되면 생성자를 통해 정보를 출력한다 package pack.a; public class User { public User() { System.out.println("패키지 pack.a 회원 생성"); } } 참고: 생성자에 public 을 사.. 2024. 2. 13. [ Java ] 실전자바-기본편 4.생성자 생성자 -필요한 이유 this package construct; public class MemberInit { String name; int age; int grade; //추가 void initMember(String name, int age, int grade) { this.name = name; this.age = age; this.grade = grade; } } package construct; public class MethodInitMain3 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.initMember("user1", 15, 90); MemberInit member2 = n.. 2024. 2. 12. [ Java ] 실전자바-기본편 3.객체 지향 프로그래밍 절차 지향 프로그래밍 vs 객체 지향 프로그래밍 절차 지향 프로그래밍 실행 순서를 중요하게 생각하는 방식 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식, 즉 "어떻게"를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍 객체를 중요하게 생각하는 방식이다. 실제 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다. 둘의 중요한 차이 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 "객체"안에 함께 포함되어 있다. 절자치향 음악플레이어 package oop1; public class MusicPlayerDat.. 2024. 2. 11. 이전 1 ··· 3 4 5 6 7 8 다음 반응형