목록분류 전체보기 (231)
코딩 기록들
다이어그램 그리는 순서 1. 클래스 다이어그램 -> 2. 시퀀스다이어그램 -> 3. 플로우 다이어그램 Vending Machine 예제코드 [ 클래스 다이어그램 ] Customer - wallet : int - product : Product + getWallet() : int + getProduct() : Product + (int) + pay(int) : void + addStock(String, int) : void VendingMachine - product : Product - money : int + getProduct() + getMoney() + (Product) + pressButton(Customer) : void Mart + main : void Product - name : Stri..

클래스 변수 (= static 변수) - 인스턴스가 아닌 클래스로 접근할 수 있는 변수 => 변수앞에 'static' 키워드 붙이면 됨 - 클래스로 변수에 접근이 가능하다는 점에서, 애플리케이션 내부의 모든 Java파일에서 공유되는 '공용변수' 이다 - 모든 자바파일이 공유하는 변수이므로, 클래스변수의 값이 변경될경우 -> 원하지않는 결과값이 생성될 가능성이 매우높아짐 (static 만 붙어있는 변수는 없다고 봐도 됨 따라서, 클래스변수는 값이 변경되지 않도록하기위해 static뒤에 final 키워드를 붙여 공용 상수(클래스 상수) 로 사용 -> static으로 정의된 변수는 인스턴스가 아닌, '클래스'로 접근이 가능하게 됨 public static int instanceCount = 0; // 클래스 ..

생성자 - 클래스를 인스턴스로 만들어주는 특별한 메소드 - 반드시 new 라는 키워드로 호출해야함 - 생성자이름은 인스턴스로 만드려는 클래스의 이름과 동일해야함 (타입과 생성자의 이름이 같아야 함) - 안써도 됨 & 초기값을 주고싶을때 사용! - 생성자는 반환타입이 없음 : public 클래스명() 으로 선언하고, 반환타입이 없는 메소드이기 때문에, return 키워드X (필요한경우 파라미터값은 줘야함. 반환타입이 없는거랑 파라미터 주는거랑 헷갈리지말것) Car car = new Car(); CraneGameMachine cgm = new CraneGameMachine(); 생성자를 정의하지 않았는데, 호출이 가능한 이유 -> 생성자가없는 클래스를 작성하면 -> '기본생성자'가 자동 추가됨 - 어떠한 형..

패키지 - 윈도우에 있는 폴더라고 생각하기 - 여러 자바파일 중 관련된 파일들만 정리하여 모아둔 폴더 - 한 패키지 내에서 같은이름의 java파일은 만들 수 없음 패키지 이름 쓰는 방법 - 규칙 : 소문자와 점(".")을 제외한 다른문자는 쓰지 않음 (단어와 단어가 합쳐져도 구분되지 않음. 다 소문자로 작성) - 애플리케이션을 개발하는 회사의 도메인을 역순으로 작성 ex) naver.com 에서package_exam애플리케이션을 개발한다면 -> com.naver가 기본 패키지명이 됨 업무명이 회원관리 -> com.naver.member.management -> 이런식으로 패키지를 만든다면, -> 이렇게 폴더가 생성되는것을 확인할수있음 -> 이클립스에서 패키지및 파일들을 좀더 깔끔하게 보기위한 설정 -> ..

객체지향 프로그래밍에서 가장 중요한 개념 : '클래스' 객체지향 프로그래밍(OOP) - 수행 과제나 문제를 실제 세계의 객체로 표현해 사람이 알기쉽게 풀어나갈 수 있는 방법 객체 - 클래스를 변수로 만드는 것 - 객체 = 인스턴스라고 부름 - 클래스를 인스턴스로 만드는 과정 = 인스턴스화 (= '생성자 메소드'를 호출하는 것) 클래스 - 존재할 수 있는 사물을 추상화 시켜놓은 개념 - Java에서는 Reference Type 자료형에 해당됨 기술적/논리적 측면으로 보는 class 1) 기술적인 측면 : 변수와 메소드를 하나로 묶어놓은 개념 -> 자바프로그래밍 언어의 근본개념 : 모든코드는 class로 작성되어야한다! ex) 형태는 변수로 표현한다 (멤버변수, 인스턴스 필드) 행동은 메소드로 표현한다(인스..

함수에 넣는 매개변수 = 파라미터 함수에 매개변수를 넣어서 나오는 값 = 반환(return) Method Return - 메소드가 처리한 결과를 반환(return) -> 값이 반환되면 호출자에게 할당됨 반환을하는 메소드 호출 방법 데이터타입 변수명 = 메소드명(); -> 메소드명 = 호출자 -> 데이터타입 변수명 (반환값을 내가 몰라도 될 경우)은 꼭 없어도 됨 - 메소드의 반환타입과 할당받을 변수의 데이터타입은 반드시 동일해야함 반환타입에 - void : 반환시킬게 없는경우 = return 이 없음 (void 외에는 모두 return 키워드가 마지막에 항상 있어야함) - primitive type(숫자, 문자, boolean) : byte short int long / double float / cha..

객체지향의 함수 = 메소드 라고 부른다 메소드 하나의 기능을 하는 코드의 묶음 단위 - 함수를 만드는 이유 ) 내가만들어서 누군가가 호출할 때 함수가 필요하므로! (여러번 반복해서 사용 = 재사용성이 높다) - 메소드가 하는일에 따라 파라미터(인자)가 필요할 수도 있음 - 처리결과를 반활수도, 반환하지 않을수도 있음 - 동일한 기능의 코드가 여러번 중복되어있을경우, 해당코드를 수행하는 기능을 만들어두면(=메소드) 편함 - 메소드를 정의하고나서, 반드시 '호출'을 해야만 실행이 된다! - 보통의 메소드 => 한가지 일만 한다 - 메소드에서 기능의 범위를 정하는 방법 : 관련된 코드로 지정! 1) 어디까지가 기능인지, 2) 분리했다면 재사용 될 수 있는지? -> 둘다 해당 안된다면 메소드 분리시키지 X pu..

while : 조건에 따라 반복할 때 for : 반복횟수를 알고싶을 때 whlie while(조건) { 반복될 코드 블럭 } - 잘 안씀 (잘못쓰면 application이 죽어버림) - 설계가 잘된 솔루션은 wihle 안씀 - 조건 : 비교연산자, 논리연산자, 불린값 자체가 들어갈수 있음 - { } 안의 내용 반복하는것 -> 언제까지 ? (조건)의 값이 false가 될때까지 public static void main(String[] args) { int i = 0; System.out.println(++i); System.out.println(++i); System.out.println(++i); System.out.println(++i); System.out.println(++i); System.out..