자바의 메모리 구조 정적 메모리 영역 스택 영역 정적 메모리 영역 ⇒ 컴파일할 때 결정, 실행 중 변하지 않음 ex) 자바 코드, 클래스 정적 멤버 변수, 멤버 함수 상수 등 저장 스택 영역 ⇒ 프로그램 실행 중 증감하는 영역 , 함수가 호출되면 메모리 할당되었다가 종료되면 사라짐 ex) 멤버 함수 내부에 생성된 지역 변수들, 매개변수들 저장 기본형 변수는 값, 클래스 변수는 참조값 기본형 변수는 값을 저장하고, 클래스 변수는 참조값을 저장한다. int i1= 4; int i2= 5; class Hello{ System.out.println("Hello") } Hello h1= new Hello(); Hello h2= new Hello(); i1 4 i2 5 h1 5f341870 h2 5f341880 H..
SCHOOL/객체지향 프로그래밍
배열 같은 자료형 끼리 모아둔 것이다. int [] arr={초깃값}; int arr2 []={초깃값}; 이미 선언된 변수에 초기값 지정은 못한다. ex) int [] arr; arr={1,2}; //오류 배열 생성 방법 초기값 지정 int [] arr={1,2}; new 사용 int [] arr; arr= new int[2]; 자료형 [] 변수형 = new 자료형 [배열 크기] int [] arr = new int [2] ; 배열 요소 접근: arr[1] , arr[0] 배열의 크기: arr.length import java.util.Scanner; class Hello { public static void main(String[] args) { double[] arr1 = new double[4]; ..
MAIN 함수 public static void main(String[]args){ } 자바 프로그램을 실행시키면, main() 함수 내부에 있는 코드가 순차적으로 실행된다. main()함수 내부의 코드가 모두 실행되면 프로그램이 종료된다. 변수와 대입 연산 int x= 1; x는 변수 이름이고, 1은 x라는 상자에 저장 된 것이다. 대입 연산자를 = 라고 하고, 왼 = 오 ex) x=1, y=1 대입 연산자 기준으로 오른쪽이 숫자, 왼쪽이 변수가 된다. 대입 연산자의 왼쪽 변수와 오른쪽 값의 자료형은 같아야 함. 다르면 자료형 불일치가 일어남 자동형 변환이 되는 경우가 있는데, 작은 값을 큰 범위의 변수에 저장할 때이다. int a=1; double b= 1.1; long b=1; float c=1; ..
테트리스 만드는 문제 Rectangle 클래스 import java.awt.Point; class Rectangle { public static final int WIDTH = 50; public static final int HEIGHT = 50; private Point upperLeft; private Point lowerRight; public Rectangle(Point ul) { upperLeft = ul; lowerRight = new Point((int) ul.getX() + WIDTH, (int) ul.getY() + HEIGHT); } public Rectangle(Point ul, Point lr) { upperLeft = ul; lowerRight = lr; } public void..
public > protected >default > private - public: 접근 제한이 없다. - protected: 동일한 패키지 내에 존재하거나 파생 클래스에서만 접근 가능하다. - default: 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에 존재해야 접근 가능. - private: 자기 자신의 클래스 내에서만 접근 가능 Protected protected string name; protected 는 자식클래스에서는 오픈되어있는 형태가 된다. protected는 package private(default)보다 큰 개념으로 폴더 내에 있는 모든 클래스에서 접근이 가능할 뿐만 아니라 폴더가 다르더라도(패키지가 다르더라도), 상속 관계가 만들어진다면, 부모..
결합성 -클래스 사이의 상호 관계 정도 -클래스를 일관성 있게 만들면, 관련되어 있지 않는 "개념" 을 분리해서 새로운 클래스에 구성할 수 있다. - 클래스 간 관계 생성 가능. 연관 - 두 클래스 사이가 연결됨. - 클래스 간의 참조가 사용됨. - 클래스의 멤버 변수로 다른 클래스가 저장됨. -uml 에서는 실선이나 화살표를 이용한다. import java.util.Random; class Dice{ private Random random; //private이므로 클래스 밖에서 수정할 수 없음. public Dice(Random random){ this.random=random; } public int roll() { return random.nextInt(6)+1; //1부터 6까지의 랜덤 추출 } ..