Keyword접근 제어자의 핵심은 속성과 기능을 외부로부터 숨기는 것private: 전부 다 막기default: 같은 패키지protected: 같은 패키지 + 상속public: 전부 다 열기사용가능여부privatedefaultprotectedpublic필드, 메서드OOOO클래스XOXOpublic 클래스는 반드시 파일명과 이름이 같아야 한다하나의 자바 파일에 public 클래스는 하나만 등장 가능하나의 자바 파일에 default 클래스는 무한정 가능캡슐화접근 제어자 필요한 이유package access;public class Speaker { int volume; Speaker(int volume) { this.volume = volume; } void vo..
Keyword패키지import패키지 - 시작패키지 사용package pack;public class Data { public Data() { System.out.println("패키지 pack Data 생성"); }}package pack.a;public class User { public User() { System.out.println("패키지 pack.a 회원 생성"); }}package pack;public class PackageMain1 { public static void main(String[] args) { Data data = new Data(); pack.a.User user = new pack.a.User(..
Keyword생성자 (Constructor)this생성자를 사용하면 필수값 입력을 보장할 수 있다.기본 생성자생성자 오버로딩this()생성자가 필요한 이유package construct;public class MemberInit { String name; int age; int grade;}package construct;public class MethodInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name = "user1"; member1.age = 15; member1.grade = 90; ..
Keyword절차 지향 프로그래밍객체 지향 프로그래밍: 속성+기능으로 하나로 온전히 되어 있다.static모듈화캡슐화절차 지향 프로그래밍 vs 객체 지향 프로그래밍절차 지향 음악 플레이어1package oop1;public class MusicPlayerMain1 { public static void main(String[] args) { int volume = 0; boolean isOn = false; //음악 플레이어 켜기 isOn = true; System.out.println("음악 플레이어를 시작합니다"); //볼륨 증가 volume++; System.out.p..
Keyword기본형 (Primitive Type)참조형 (Reference Type)대원칙: 자바는 항상 변수의 값을 복사해서 대입한다.nullNullPointerException기본형 vs 참조형: 시작기본형 vs 참조형: 변수 대입package ref;public class VarChange1 { public static void main(String[] args) { int a = 10; int b = a; System.out.println("a = " + a); System.out.println("b = " + b); //a 변경 a = 20; System.out.println("변경 a =..
Keyword클래스객체, 인스턴스멤버변수, 필드자바에서 대입은 항상 변수에 들어 있는 값을 복사해서 전달한다.클래스가 필요한 이유package class1;public class ClassStart1 { public static void main(String[] args) { String student1Name = "학생1"; int student1Age = 15; int student1Grade = 90; String student2Name = "학생2"; int student2Age = 16; int student2Grade = 80; System.out.println("이름:" ..
Keyword메서드인수 (Argument)매개변수 (Parameter)반환 타입형변환메서드 오버로딩메서드Method1Refpackage method;public class Method1Ref { public static void main(String[] args) { int sum1 = add(5, 10); System.out.println("결과1 출력:" + sum1); int sum2 = add(15, 20); System.out.println("결과2 출력:" + sum2); } //add 메서드 public static int add(int a, int b) { System.out.println(a + "+" + ..
Keyword배열의 선언과 생성2차원 배열향상된 for 문배열이 필요한 이유package array;public class Array1 { public static void main(String[] args) { int student1 = 90; int student2 = 80; int student3 = 70; int student4 = 60; int student5 = 50; System.out.println("학생1 점수: " + student1); System.out.println("학생2 점수: " + student2); System.out.println("학생3 점수: " +..
KeywordScannerprint()println()Scannerpackage scanner;import java.util.Scanner;public class Scanner1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("문자열을 입력하세요:"); String str = scanner.nextLine(); // 입력을 String으로 가져옵니다. System.out.println("입력한 문자열: " + str); System.out.print("정수를 입력하세요:");..
Keyword지역변수스코프묵시적 형변환명시적 형변환오버플로우지역변수와 스코프package scope;public class Scope1 { public static void main(String[] args) { int m = 10; //m 생존 시작 if (true) { int x = 20; //x 생존 시작 System.out.println("if m = " + m); //블록 내부에서 블록 외부는 접근 가능 System.out.println("if x = " + x); } //x 생존 종료 //System.out.println("main x = " + x); //오류, 변..