언어
-
[JAVA] Extends TypeCastion언어/JAVA 2022. 9. 8. 09:43
class NormalA { int num; } class NormalB { int num; } public class Extends08_TypeCasting01 { public static void main(String[] args) { short s = 10; int i = s; // 자동 형변환 (short -> int) : 작은용량에서 큰용량의 변수로 int j = 10; // short k = j; // 에러(int -> short) : 큰 용량에서 작은 용량의 변수로 // 해결 방법은 강제 캐스팅 연산자를 앞에 붙여서 사용 short k = (short)j; // 클래스의 레퍼런스 변수간의 형변환은 각 레퍼런스의 접근 범위에 영향을 받음 // 서로 다른 클래스 객체간의 형변환은 허용되지 않음 ..
-
[JAVA] 상속(Extends)언어/JAVA 2022. 9. 7. 18:01
-다수개의 클래스들이 중복되는 멤버 변수, 멤버 메서드를 포함하고 있는 경우 부모 자식 관계를 생성하여 코드의 중복을 방지하는 것을 1차 목적으로 사용함 -2차 목적으로 코드의 재활용 방법을 목적으로 사용함 -코드의 중복이 발생하고 있는 클래스에서 중복되는 멤버들을 별도의 클래스로 선언하고 상속을 구현하여 사용함 상속의 구현 -extends 키워드의 사용 -class SubClass명(자식클래스) extend SuperClass명(부모클래스) -상속을 받는 클래스: 서 클래스, 자식클래스, 하위클래스 -상속을 제공 해주는 클래스: 슈퍼클래스, 부모클래스, 상위클래스 //코드의 중복이 발생하고 있는 클래스들 /*class PersonA{ String name; int age; String hakbun;..
-
[JAVA] SingletonPattern언어/JAVA 2022. 9. 7. 17:53
-웹프로그래밍에서 자주 사용하는 기법 -웹프로그래밍의 특성상 하나의 프로그램을 서버에 두고 다수의 사용자가 접속해서 그 하나의 프로그램을 사용하게 되는데 이때 그 프로그램내의 클래스로 만들어지는 객체는 다수의 사용자인원수 만큼 따로생성되어 사용되기 마련임. 이때 메모리 과부하가 일어날 수 있으며 이를 해결하기 위해 하나의 객체를 각각 다른 사용자가 혼자 사용하는 것처럼 공유해서 쓸 수 있게 하는 방식이 싱글턴 방식임 -특정 클래스의 인스턴스를 반드시 한개만 생성할 수 있도록 강제하는 패턴 -하나의 인스턴스를 여러 래퍼런스 변수가 공유하여 사용하도록 제어하는 방식임 // 싱글톤 생성법 import java.util.Calendar; class SingletonEx{ int n1; int n2; // 1..
-
[JAVA] Static언어/JAVA 2022. 9. 7. 17:52
-멤버변수, 멤버메서드에 적응할 수 있는 키워드 -정적 변수(클래스의 변수), 정적 메소드(클래스의 메소드)를 선언할 때 사용 자바프로그램의 구동 과정 1. JVM에 의해서 실행할 모든 클래스 중 static 메소드, static 멤버필드를 수집해서 메모리에 로딩되고 프로그램의 시작(main 메소드의 실행) 전에 메모리 적재됨 2. 메모리에 로딩된 static 메소드 중 main 이름을 검색 3. main 메소드가 검색되었다면 JVM해당 main 메소드를 호출하여 프로그램 시작 class StaticA{ int num; // instance member variable(동적 멤버변수) static int number=100; // static member variable(정적 멤버변수) } publi..
-
[JAVA] This언어/JAVA 2022. 9. 7. 17:44
-멤버변수와 지역변수(매개변수)와 부득이하게 이름이 같았을 때, 그 둘을 구분하기 위해 멤버변수 앞에 this. 을 붙여서 사용함. -this 키워드는 클래스 내부에서 사용되는 모든 멤버 변수에 원래 붙어 있지만 사용 편의상 확실히 멤버변수로 구분할 수 있는 경우 생략해서 사용하고 있음 -매개변수와 이름이 같지 않은 경우도 this를 붙여서 사용할 수 있음 -this 변수는 래퍼런스(참조) 변수임 -클래스의 멤버 필드들은 new라는 키워드에 의해서 각각의 객체별로 생성됨(서로 다른(겹치지 않는) 메모리 공간) -반면, 멤버 메서드는 생성된(오버로딩 포함) 메서드별로 하나만 존재하여 모든 객체들이 공유해서 필요시 호출함. -이때 현재 메서드를 호출한 객체가 어떤 객체인지 구분하여 실행될 수 있게 thi..
-
[JAVA] 생성(Constructor)언어/JAVA 2022. 9. 7. 17:43
-클래스의 객체가 생성될 때 멤버필드의 초기화를 위해서 사용되는 메소드 -각각의 객체가 생성될 대 서로 다른 메모리를 가지는 객체를 생성할 수 있게 함 특징 1. 멤버메서드임(특별한 멤버메서드-처음객체생성시만 호출, 중간에 호출되지 않음) 2. 클래스의 이름과 동일한 이름을 갖는 메서드 3. 리턴값이 없는 메서드 4. 따로 정의(생성)하지 않아도 이미 클래스 내부에 존재하는 메서드 5. 생성자는 각각의 객체가 생성될 때마다 호출되는 메서드 6. 주로 하는 일은 new와 함께 객체가 저장될 HEAP 메모리를 할당하고 그 안에 멤버 변수를 만드는 일을 함 class AClass{ private int age; // 필요에 따라 숨어있는 생성자를 꺼내놓고 메모리 확보하는 동작 외에 // 다른 일을 시킬 수..
-
[JAVA] 접근지정자(AccessModifier)언어/JAVA 2022. 9. 7. 17:41
-모든 클래스의 멤버는 현실에 존재하는 대상의 정보로써 직접적인 접근이 허용되는 것과 허용되면 안되는 정보가 있음. -접근 지정자는 클래스의 멤버들에 대한 접근을 제어하는 키워드 -클래스의 멤버필드/메소드는 접근지정자(private, protected, public)에 의해서 외부에서의 접근을 제어할 수 있음. -접근지정자를 사용하지 않는 경우 기본지정으로 public이 설정되며 클래스외부에서의 임의의 사용으로 값을 대입하거나 얻을 수 있음. -이는 멤버필드의 값이 강제로 수정될 수 있다는 뜻 -이를 방지하고 무분별한 접근을 막기위해 멤버변수에 private를 지정함 class Account{ private double balance; // 계좌정보 클래스에 잔액이 저장된 멤버변수 // private 멤..
-
[JAVA] Class언어/JAVA 2022. 9. 7. 17:39
-프로그램으로 처리하고자 하는 대상을 자료화하여 하나의 자료형으로 정의한 사용자 정의 자료형 -쉽게 말해 필요에 의해 기본 자료형(int, double, char 등)외에 새롭게 정의한 자료형 -한 개 이상의 자료, 하나 이상의 자료형을 저장할 수 있는 복합 자료형 -자바의 프로그램 단위는 클래스임 -하나의 프로그램 파일(XXX.java) 안에는 여러 개의 클래스를 넣어서 사용할 수 있음 -여러개의 클래스 중 파일이름과 같은 이름을 쓰는 클래스를 public으로 지정함 -그 클래스에는 보통 public static void main(){}이 존재. 이 클래스는 자료형으로서의 클래스이기 보단 프로그램 실행단위로서의 클래스임 -만들어서 사용하거나, import해서 사용할 클래스는 자료저장&가공용 클래스임..