java 33

JAVA , 클래스간의 관계 : use , has, is

클래스가 클래스를 사용하는 방법은모듈화 되어있는 클래스들을 조립하는 방법을 말한다. new 연산자를 통해 사용하는 방법이 있는데 ,참조 변수를 선언하여 사용하는 방법이 있었고, 메서드의 인자를 통해 사용하는 방법이 있었다.  인자를 통해 전달 받은 것을 사용만을 위한 관계로 , use 의 관계라고 할 수 있다.인스턴스를 정의하여 사용하는 것을 사용자 클래스와 사용되어지는 클래스의 관계를 has 관계라고 한다.하나의 클래스가 다른 클래스를 상속하여 확장한 클래스와 부모 클래스간의 관계를 is 관계, 상속관계라고 한다.-> 아래서 좀 더 자세히 보겠다. 상속의 경우.extends 는 상속한다는 의미로 사용되어지는데 , 아래 표를 보면 extends라는 단어를 사용하는 이유를 할 수있다.부모 Car 클래스를 ..

Developer/JAVA 2024.08.06

JAVA , 예제 : 로또 번호 생성기 , 학생 성적순 출력

로또 번호 생성기문제 요점 : 한클래스 내에서 만든다.로또 번호를 정렬하는 메서드를 따로 만들어서 구현할것.메서드는static 으로 정의 하여 사용. 정렬 메서드는 6개의 정수가 인자로 받아 정렬한다. 즉 , 정렬에 대한 메서드가 배열을 인자로 받아야한다는 의미였다. public static void lottoSort(int [] arr) { for (int i = 0; i arr[j]) { int tem = arr[i]; arr[i] = arr[j]; arr[j] = tem; } } } } public static void lottoSortReverse(int [] arr) { for (int i = 0; i  이 메서드를 하나로 합쳐 표현했다. public stat..

Developer/JAVA 2024.08.06

JAVA , 접근 제어자 : 설정자와 접근자

접근 제어자란 ? 클래스 또는 클래스의 멤버들의 접근 범위를 제한하는  것을 말한다.접근 제어자를 통해 코드의 접근성을 제한하여 캡슐화를 강화하고, 잘못된 사용을 방지한다.클래스와 그 구성요소의 노출 범위를 제어하여 코드의 안정성과 보안성을 높이는 중요한 역할을 한다. public : 프로젝트 전체 내 외부, 불문하고 접근 가능protected : 같은 패키지 내 , 클래스 / 상속관계에 있는 하위 클래스 접근 가능 (주로 상속을 통해 접근 허용)defalut : 접근제어자를 명시하지 않은 경우 , 같은 패키지 내에 있는 클래스만 접근가능private : 같은 클래스 내 접근 , 외부나 하위에서 접근 불가 . 데이터 보호위해 사용  그렇다면 접근이 제한된 경우에 멤버들에 대한 접근은 어떻게 해야할까 ? ..

Developer/JAVA 2024.08.05

JAVA , static 과 instance

static 을 공부하기 전 , 알아보는 자바의 운영체제  코드가 실행되어지면 ,클래스들이 실행되어지면서 ,모든 코드들을 메모리에 올려놓고 JVM이 작동되면서 메모리를 할당하여 사용한다. JVM이 코드 실행시에 반드시 필요한 아이와 필요할 때만 쓰면 되는 것을 구분하여 사용한다.반드시 필요한 아이를 static으로 정의하고 (stack area)필요할 떄만 생성하여 쓰는 아이를 instance 로 정의 하여 (heap area)용도에 맞게 메모리를 적절히 나누어 운영하게 된다.메인이 끝나면 , 프로그램이 종료된다. stack 안에 main 이 먼저 아래에 자리하고 , stack은 자료를 담아두는 공간에 대한 용어이다.메서드의 실행 순서(메서드 콜)를 관리한다.제일 마지막에 들어간 데이터가 제일 먼저 나올..

Developer/JAVA 2024.08.04

JAVA , 초기화 블럭(init) 과 생성자 , this

init(초기화 블럭)초기화 블럭의 역할 멤버변수의 초기화를 할 수 있다. (= 명시적 초기화)초기화가 복잡할 경우, 생성자를 이용할 것. 생성자는 이후에 다뤄보겠다. 자바의 수행 순서 프로그램 로딩 ☞ 클래스 초기화 블럭(stack)  ☞ main 메서드 실행☞ 인스턴스 생성 (new)(heap)  ☞ 인스턴스 초기화 블럭 ☞ 생성자 실행 여기서 봐야할 점은 , main 실행전 클래스 초기화 블럭이 실행되고 , main 실행 후 생성자 실행 전에 인스턴스 초기화 블럭이 실행된다는 것이다.  static int [] arr = new int[10]; //선언만 해놓음. static int count = 100; // 선언과 동시에 명시적으로 초기화 String color ; // 선언만 해놓음. dou..

Developer/JAVA 2024.08.04

JAVA , 팩토리얼 연산 (Factorial)과 static

재귀적 호출이란 메서드가 메서드 내부에서 자신을 호출하는 것을 말한다.Factorial 연산에 주로 이용된다.5! = 5*4*3*2*1 n! = n*(n-1)*(n-1-1)*(n-1-1-1)...*1   public int factorial01(int n) { if (n==1) return 1; System.out.println("n :"+ n); return n*factorial01(n-1); } 메서드 내부에서 자기자신의 메서드를 호출 : 재귀적 호출 (Recursive Call)Ex04_Factorial은 noneStatic / factorial01은 nonStatic의 메서드noneStatic 은 곧 Instance 를 의미.noneStatic 임으로 인스턴스 생성후 사용할 수 있음.   ..

Developer/JAVA 2024.08.03

JAVA , 매개변수의 전달 방식 : CallByValue와 CallByReference

CallByValue : 값을 전달 값 (리터럴)을 전달. 기본자료형과 string 에 해당한다.  public void juiceCafe1(String s) { System.out.println("매개변수 테스트"); s = "망고수박"; System.out.printf("무슨 주스를 원하시나요 ? %s %n", s); System.out.println(); } String kind = "바나나"; ex03.juiceCafe1(kind); System.out.println(kind);값은 전달해준 kind 에는 영향을 주지 않는다. kind 의 리터럴만 전달했기 때문(CallByValue)  CallByReference 주소값을 전달 매개변수로 car 와 int를 받는 메서드 pub..

Developer/JAVA 2024.08.03

JAVA ,Method OverLoading 오버로딩에 대하여

메서드명을 동일하게 사용해보자,overLoad  public void juiceCafe1() { // 메서드의 header System.out.println("무슨 주스를 원하시나요 ?"); // 메서드의 body System.out.println("메서드 구성 : 매개변수 X void O"); // 메서드의 body System.out.println(); }일반적인 메서드를 만들어보자, 인자를 하나 추가해 놓는다면 , 자바는 다른 메서드로 인식한다. public void juiceCafe1(String s) { System.out.println("메서드 명 중복 테스트"); System.out.printf("무슨 주스를 원하시나요 ? %s %n", s); System.out.println..

Developer/JAVA 2024.08.03

JAVA, 클래스의 멤버 메서드 , 지역변수와 전역변수

지역변수와 전역변수전역변수public class Ex02_MyClassTest2 { Car myCar; Car newCar = new Car(); // Ex02_MyClassTest2 클래스의 전역 변수 public static void main(String[] args) { System.out.println("** Boyfriend class Test **"); }}Car myCar; 같은 경우 인스턴스 이름만 정의 했음을 의미한다,객체화(메모리 할당)은 되지 않았다.이름만 정의 했으면 값은 null 이고 , 클래스 내에 선언한 멤버들은 전역으로 선언되었다고 보면된다. 메서드가 static 으로 선언되었다면 , 전역변수 정의도 static을 사용하여주면 간편하게 사용할 수 있다.  지역..

Developer/JAVA 2024.08.02

JAVA , 클래스와 인스턴스(객체), 객체의 의미 , 나만의 클래스 만들기

Random random3 = new Random();Random→ 클래스random3 → 인스턴스(객체)(Random 이라는 클래스를 지칭하는 변수)new → Random이라는 클래스가 사용가능하게 heap영역의 메모리를 할당케 한다.사용 가능한 형태로 객체화사전상의 의미class : 학급[반] (학생들), 수업 (=lesson), (한 주제에 대한 연속적인) 수업[강좌] (=course)Object : [명사] 물건, 물체 (→UFO), 욕망, 연구, 관심 등의 대상,[동사] 반대하다, [동사] 반대 이유를 대다, …라고 항의하다 (=protest)Instance: [명사] 사례, 경우, [동사][격식] …을 예로 들다  * 객체의 주기 (LifeCycle) => 생성 -> 사용 -> 소멸 (in M..

Developer/JAVA 2024.08.02
728x90