[java] 객체배열 *배열의 특징* - 순서가 있다. - 인덱스가 있다. - 참조형이다. - 인덱스는 0번부터. int[] iArr = new int[5]; -> iArr 정수형 배열 5칸짜리 String[] sArr = new String[5]; -> sArr 문자열형 배열 5칸짜리 Book[] bArr = new Book[3]; 객체 배열의 선언 및 할당! [표현법] 클래스이름[] 배열이름 = new 클래스이름[배열크기]; *JAVA* 2021.10.26
[java] 오버로딩(overloading) 메소드 오버로딩 - 한 클래스 안에 같은 메소드명으로 여러 메소드들을 정의할 수 있는 방법! - 매개변수의 자료형의 갯수, 순서, 종류가 다 다르게 작성되어야한다. - 단, 매개변수명, 접근제한자, 반환형은 메소드 오버로딩에 영향을 주지 않는다. *JAVA* 2021.10.26
[java] 객체 - 메소드(method) 메소드(Method) : 입력을 가지고 어떤 일을 수행한 다음에 결과물을 내놓는다! [표현법] 접근제한자 예약어 반환형 메소드이름(매개변수의자료형 매개변수이름) { 수행할 코드; return 반환값; } 생략 가능한 것 : 예약어, 매개변수, return문 부분(반환형이 void일 경우!) 반환형 : 반환할 값의 자료형 호출할때 인자값 => 매개변수의 자료형과 갯수가 일치해야함 반드시! 한번 정의해두고 필요할때마다 호출해서 사용 언제든! 반환형이 없는 메소드 : 출력문을 작성하는편 반환형이 있는 메소드 : 호출하는 부분에서 출력문을 작성 *JAVA* 2021.10.26
[java] 생성자(constructor) 메소드의 이름이 클래스이름과 동일하고 리턴자료형이 없는 메소드(반환형이 없는 메소드) 객체가 생성될 때 (new키워드 사용시) 호출이 되는 메소드이다. [표현법] public 클래스이름(매개변수(생략가능)) { 해당 생성자를 통해서 객체 생성시 실행하고자 하는 코드. } 참고) 메소드의 표현법 접근제한자 반환형 메소드이름(매개변수(생략가능)) { } 생성자를 작성하는 목적 1. 객체를 생성해주기 위한 목적 2. 객체를 생성 뿐만 아니라 매개변수로 전달된 값들을 바로 필드에 초기화할 목적 생성자의 종류 1. 매개변수가 없는 생성자 => 기본생성자 2. 매개변수가 있는 생성자 => 차이점 : 필드에 값을 초기화 할 수 있냐 없냐의 차이 생성자 작성시 주의사항 1. 반드시!!!!!!!!!!!!!!!!!!!! .. *JAVA* 2021.10.26
[java] 클래스 변수(static 변수)와 상수 필드(static final) 필드 [표현법] 접근제한자 예약어(생략가능) 자료형 필드이름; 생성시점 : 프로그램 실행과 동시에 메모리의 static영역에 할당됨 소멸시점 : 프로그램 종료시 소멸됨 => 객체를 생성하지 않고 할당됨!! static "공유"의 개념이 강함! 프로그램 실행과 동시에 메모리영역에 공간을 만들어두고 그 안에 값을 공유해서 쓰자! 상수필드 (cf. 상수 : 변경하지 않을 변수) [표현법] public static final 자료형 상수필드이름 = 값; => 한번 지정된 값을 고정해서 쓴다. 그래서 무조건 초기화 해줘야함!!! => 예약어 순서는 상관없음 public final static으로 써도됨! static : 공유의 개념(재사용성) final : 한번 지정해놓고 변경하지 않겠다. (상수선언) 값이 변경.. *JAVA* 2021.10.25
[java] 접근제한자 (+)public => 어디서든(같은패키지, 다른패키지 모두) 접근 가능하게 하고싶다. (#)protected => 같은 패키지면 무조건 무조건 접근가능~! 다른 패키지면 상속구조인 클래스에서만 접근가능하다! (~)default => 오로지 같은 패키지에서만 접근가능, 생략 가능 (-)private => 오직 해당 클래스 안에서만 접근 가능 => 위에서부터 아래로 내려갈수록 접근할 수 있는 범위가 좁아진다. => +,#,~,-: 클래스 다이어그램 표기방법. *JAVA* 2021.10.25
[java] 전역변수/ 지역변수 필드 : 클래스를 구성하는 요소 중 하나!! 클래스 내부지만 메소드밖에 영역의 정의함! 어떠한 데이터를 저장하기 위한 역할(변수) 변수 구분 - 전역변수 : 클래스 영역에 바로 선언하는 변수!(public static) => 클래스내 어디서든 사용가능! - 지역변수 : 클래스 영역내의 특정한 구역({ }) => 메소드, for문 등등... for(int i = 0; 조건식; 증감식;) {} => 초기식에서 선언된 i도 지역변수 1. 전역변수 - 멤버 변수 (인스턴스변수, 필드) 생성시점 : new 키워드 사용하면 해당객체를 생성하는 순간 메모리영역에 할당! => heap영역! 소멸시점 : 객체가 소멸될 때 => 가비지컬렉터 - 클래스 변수 (static 변수) : static이라는 예약어가 붙은 변수! .. *JAVA* 2021.10.25
[java] 캡슐화 - setter / getter 메소드 캡슐화과정을 통해 완벽한 클래스의 형태를 갖추게 하자! 캡슐화를 하지 않으면 : 외부로부터 직접접근이 가능하기 때문에 함부로 값이 변질되거나 조회를 막지 못하는 문제가 발생 정보보안 3요소 : 기밀성, 무결성, 가용성 => 캡슐화 작업 : 정보은닉 기술 중 하나! 데이터의 "접근제한"을 원칙으로 하여 외부로부터 직접 접근을 막자!!!!! 단, 대신에 간접적으로나마 처리(값 대입, 조회)를 할 수 있게끔 하자!!! => 메소드를 통해서 => 캡슐화 작업의 2단계 1. 값을 숨긴다. : public 대신 private 으로 접근제한자를 바꿔준다. 2. 간접적으로 값을 처리할 수 있는 메소드를 만든다. 필드가 보이지 않아서 오류 발생 => private으로 설정했기 때문 위와 같은 직접접근이 불가능함! 1 2.. *JAVA* 2021.10.25
211024 코드가 너무 너져분한거 같다.... 더 간략하게 할 순 없는걸까... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 public class Arrays { public void method1() { /*1번 문제 문자열을 입력 받아 문자 하나하나를 배열에 넣고 검색할 문자가 문자열에 몇 개 들어가 있는지 개수와 몇 번째 인덱스에 위치하는지 인덱스를 출력하세요. ex. 문자열 : application 문자 : i application에 i가 존재하는 위치(인덱스) : 4 8 i 개수 : 2*/ Scanner sc .. *JAVA*/practice_과제 2021.10.24
[java] 객체(Object) 객체지향 프로그래밍 : 현실세계에서 독립적인 존재들(객체)간의 상호작용(행위)을 프로그래밍 언어를 통해 코드로 구현하는 것. 구현하고자 하는 프로그램 상의 객체(변수)를 만들기 위해서는(생성하기 위해서) => '클래스'라는 틀을 먼저 만들어야한다. 클래스란? 객체들의 속성(정보, 행위)들을 담아내는 그릇 또는 틀 같은 존재 Cat 클래스를 만들어보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class Cat { public String name; public String eyes; public String body; public String foot; public double weight; public void eat(int weight) { this.weigh.. *JAVA* 2021.10.24