Java
-
배열Java 2023. 2. 18. 15:56
학습 목표 배열에 개념 배열 문법 배열 사용 배열이란? 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. 배열 선언하기 int[] arr1 = new int[6]; int arr2 [] = new int[] {10,20,30}; 각 배열마다 값 정하기 (0부터 시작) int[] arr1 = new int[6]; arr1[0] = 1; arr1[1] = 100; arr1[2] = 50; arr1[3] = 3; arr1[4] = 20; arr1[5] = 13; int arr2 [] = new int[] {10,20,30}; 배열 초기화 하기 int arr2 [] =..
-
staticJava 2023. 2. 13. 13:20
학습 목표 static 변수 static 함수 인스턴스들 끼리 공유 해야 하는 값이 필요하다면 static 을 사용하면 된다. static 활용 static이란? static이라는 의미는 '정적인, 움직이지 않는다'라는 뜻이다. 메모리에서 고정되기 때문에 붙은 이름이지만 , 실제 소스에서 static을 사용한다는 의미는 모든 객체가 '공유' 한다는 의미이다. 언제 사용하는가? 예를 들어서 은행 번호표를 뽑는다고 가정해보자. 기계가 2대가 있는데 기계마다 데이터를 공유하지 않고 번호표를 뽑으면 따로 번호표가 찍혀 나온다. 기계가 2대이더라도 데이터를 공유함으로서 번호가 따로 나오지 않고 순차적으로 나오게 된다. static 변수 은행 번호표를 예시로 소스코드를 보면서 이해하자 package ch08; pu..
-
thisJava 2023. 2. 13. 03:11
학습 목표 this 3가지 사용방법을 알자 this란 1.인스턴스(객체) 자신의 메모리를 가리킨다. 2.생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다. 3.자신의 주소 (참조값,주소값)을 반환 시킬 수 있다. 1.인스턴스(객체) 자신의 메모리를 가리킨다. main 함수에서 Student 객체를 하나 생성한후 학번, 이름을 Setter를 통해 값을 입력했다고 가정한다. package ch08; public class StudentTest { public static void main(String[] args) { Student studentPark = new Student(); studentPark.setStuentID(10); studentPark.setStudentName("피망"); } } ..
-
접근 제어 지시자Java 2023. 2. 13. 01:16
학습목표 접근제어 지시자 public --> 어디에서든 접근 가능함. default ----> 같은 패키지 내에서 접근 가능 protected 해당.java 안에서만 접근이 가능하다. 포인트 객체에 상태 값은 행위를 통해서 변경 시키는 것이 객체 지향 코드 방법이다. get : read-only 성질을 가진다 . set : 개발자 선택에 의해서 만들 수 있고, 방어적 코드를 작성할 수 있다. 그림과 같이 int balance 변수 앞에 private을 선언하였다. balance 변수에 값을 넣을려고 해도 오류가 뜬다. 즉 해당 .java안에서만 접근이 가능하다. 이는 객체 데이터를 외부에서 읽고 변경 시 객체 의 무결성이 깨질 수 있기 때문이다. ex)자동차 속도는 음수 불가, 하지만 외부에서 음수로 설..
-
객체와 객체간에 상호작용Java 2023. 2. 12. 23:20
학습 목표 객체간에 메세지를 주고 받을 수 있다(상호작용) 학생 클래스 만들기 :takeBus, takeSubway 매개변수에 어떤 데이터 타입이 들어오는지, 담겨 있는 값이 무엇인지 인지하세요. package ch05; public class Student { String name; int money; public Student(String name, int money) { this.name = name; this.money = money; } //객체간의 협업(핵심부분) 다른 클래스에 영향을 주는것 // 학생이 버스를 탄다 public void takeBus(Bus targetBus) {//버스에 대한 정보를 매개변수로 받아온다. bus는 객체이다. System.out.println("takeBus ..
-
생성자Java 2023. 2. 12. 18:33
학습 목표 사용자 정의 생성자 기본 생성자 생성자 오버로딩 이라는 의미를 이해하자 생성자 new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. 객체 생성할 경우 이외에는 호출할 수 없고, 멤버 변수 초기화 등 인스턴스를 초기화 하는 코드가 구현된다. 생성자 이름은 클래스 이름과 동일하고 반환 값이 없으며 상속되지 않는다. private 변수는 다른 클래스에서는 호출할 수 없지만 생성자를 호출할 경우 초기화가 가능하다. 기본생성자 public Student(){} 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다. 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어..
-
함수와 스택 메모리Java 2023. 2. 12. 17:39
스택을 이해할려면 메모리 구조를 이해할 필요가 있다. 메모리의 공간은 크게 Stack영역, Heap 영역으로 구분되고 데이터타입(자료형)에 따라서 해당 공간에 할당된다. Stack 영역 앞에 작성하던 메소드 내에서 정의하는 기본 자료형(int, double, byte, long, boolean)에 해당되는 지역변수(매개변수 및 블럭문 내 변수 포함)의 데이터의 값이 저장되는 공간이 stack영역이다. 즉 메소드 내에서 정의하는 기본 자료형에 해당되는 지역변수의 데이터 값이 저장되는 공간 메소드가 호출될때 스택 영역에 스택프레임이 쌓이게 되고 그안에 메소드를 호출한다. 메소드가 호출 될 때 메모리에 할당되고 종료되면 메모리에서 사라진다. Stack은 후입선출 LIFO(Last-In-First-Out)의 특..
-
함수(function)Java 2023. 2. 12. 14:45
함수 하나의 기능을 수행하는 일련의 코드 함수의 길이와는 상관없이 하나의 기능만을 한다. 호출하여 함수가 실행된 후 값을 반환할 수 있다. (반환할려면 꼭 return을 써야한다. 안쓸려고 해도 오류가 뜬다. 기능을 다시 써야하기 때문에) 함수가 선언되면 여러 곳에서 호출되어 사용될 수 있다. (만약 더하기라는 함수가 있다면 거리를 더하던 숫자를더하던 성적을 더하던 더하기라는 한 기능을 여러곳에서 호출해서 사용할수 있다.) 함수를 사용시 장점은 코드의 재사용성,가독성을 높일 수 있다 매개변수 함수의 정의에서 전달받은 인수를 함수내부로 전달하기 위해 사용하는 변수 함수가 호출될 때 함수로 값을 전달해준다. 함수 정의하기 함수는 이름,매개변수(입력값), 반환 값(결과 값), 함수 몸체(body) 4가지로 구..