본문 바로가기

항해 99/Java

(52)
연산자, 조건문, 반복문, 배열 항해 99 : TIL - 2 학습 참조 : 강의 - Java 문법 종합반 2주차 팀과제 - 숫자 야구 프로그램 조건 컴퓨터는 0 과 9 사이의 서로 다른 숫자 3개를 무작위로 뽑는다 (ex) 123, 490 사용자는 컴퓨터가 뽑은 숫자를 맞추기 위해 시도한다 컴퓨터는 사용자가 입력한 세자리 숫자에 대해서, 아래의 규칙대로 스트라이크(S)와 볼(B)를 알려준다 숫자의 값과 위치가 모두 일치하면 S 숫자의 값은 일치하지만 위치가 틀렸으면 B 기회는 무제한이며, 몇 번의 시도 후에 맞췄는지 기록 숫자 3개를 모두 맞춘 경우, 게임을 종료 import java.util.Random; import java.util.Scanner; public class BaseballGame { public static void..
Java 기초 개념 항해 99 : TIL - 1 학습 참조 : 강의 - Java 문법 종합반 1주차 학습 내용 정리 JVM Java Virtual Machine : 자바를 다양한 환경에서 실행할 수 있게 해준다. 클래스로더, JIT 컴파일러, 인터프리터, 가비지 컬렉터가 있음 바이트 코드 Java 컴파일러를 통해 JVM이 이해할 수 있는 기계어로 변환된 java 소스 코드 인터프리터 바이트 코드를 JVM이 읽을 수 있도록 읽고 해석 Java 컴파일러 개발자가 작성한 자바 소스 코드를 JVM이 이해할 수 있는 바이트 코드로 변환하는 역할 수행 JIT 컴파일러 인터프리터 보조 역할 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러 (동적 번역 dynamic translation) 메모리 영역 Java에서 사용하..
Java 기초 12 - final , 상속 final 변수와 상수 final 키워드는 이름 그대로 끝이라는 뜻. 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없음 final은 class, method를 포함, 여러 곳에 붙을 수 있다. final - 지역 변수 package final1; public class FinalLocalMain { public static void main(String[] args) { //final 지역 변수 final int data1; data1 = 10; //최초 한 번만 할당 가능 //data1 = 20; // 컴파일 오류 //final 지역 변수 2 final int data2 = 10; //data2 = 20; // 컴파일 오류 method(10); } static void method(final..
Java 기초 11 - 자바 메모리 구조와 Static 자바 메모리 구조 자바 메모리 구조 - 비유 자바 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나뉨. 메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀 스탭 영역: 실제 프로그램이 실행되는 영역(메서드 실행마다 1개씩 쌓임) 힙 영역: 객체가 생성되는 영역, new 명령어 사용 시 이 영역을 사용(붕어빵이 존재하는 공간, 배열로 해당 영역에서 생성) 자바 메모리 구조 - 실제 메서드 영역(Method Area) : 프로그램을 실행하는데 필요한 공통 데이터를 관리(프로그램 모든 영역에서 공유) 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드 존재 static 영역: static 변수들을 보관 런타임 상수 풀: 프로그램을 ..
Java 기초 10 - 패키지, 접근 제어자 패키지 컴퓨터는 보통 파일을 분류하기 위해 폴더, 디렉토리라는 개념을 제공한다. 자바도 이런 개념을 제공하는데, 이것이 바로 패키지다. 패키지 사용 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 회원 생성"); } ..
Java 기초 9 - 생성자 생성자 - 필요 이유 객체를 생성하는 시점에서 어떤 작업을 하고 싶다면 생성자(Construct)를 이용하면 된다. MemberInit package construct; public class MemberInit { String name; int age; int grade; } MethodInit1 package construct; public class MethodInit1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name = "user1"; member1.age = 15; member1.grade = 90; MemberInit member2 = new MemberInit(); mem..
Java 기초 8 - 객체 지향 프로그래밍 객체 지향 프로그래밍 절차지향 프로그래밍 - 시작 절차 지향 프로그래밍 vs 객체 지향 프로그래밍 프로그래밍은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있음 절차 지향 프로그래밍 절차 지향 프로그래밍은 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식. 즉, "어떻게"를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍 객체 지향 프로그래밍은 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식 객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식. 즉, "무엇을" 중심으로 프로그래밍 한다. 둘의 중요한 차이 절..
Java 기초 7 - 클래스, 기본형과 참조형 클래스가 필요한 이유 자바는 클래스와 객체로 이루어져 있다(클래스와 객체라는 개념이 중요함). 문제 : 학생 정보 출력 프로그램 요구사항 첫 번째 학생의 이름은 "학생1", 나이는 15, 성적은 90 두 번째 학생의 이름은 "학생2", 나이는 16, 성적은 80 각 학생의 정보를 다음과 같은 형식으로 출력해야 함: "이름: [이름] 나이: [나이] 성적 : [성적]" 변수를 사용해서 학생 정보를 저장하고 변수를 사용해서 학생 정보를 출력 package class1; public class ClassStart1 { public static void main(String[] args) { String student1Name = "학생1"; int student1Age = 15; int student1Grad..