Language에 해당하는 글 84

  1. 클래스(4) : 클래스의 구성 요소 / 초기화 2022.05.26

    클래스의 구성 요소 1. 변수 1.1. 공유 변수 1.2. 인스턴스 변수 1.3. 지역 변수 2. 메서드 2.1. 인스턴스 메서드 2.2. 클래스 메서드(static,공유 메서드) 3. 초기화(변수) ← 오늘은 여기 3.1. 생성자 3.2. 초기화 블록 3.2.1. 인스턴스 블록 3.2.2. 정적(static) 블록 변수의 초기화 변수를 선언하고, 처음 값을 지정하는 것을 "초기화"라고 한다. 멤버변수는 초기화를 하지 않아도 자동으로 변수의 자료형에 맞게 디폴트값으로 초기화되지만, 지역변수는 사용 전에 반드시 초기화를 해 주어야 한다. → 명시적 초기화 = int a = 10; 처럼 선언과 동시에 값을 초기화해주는 것 final 변수는 반드시 명시적 초기화로만 값을 넣을 수 있다. 멤버변수(클래스변수, ..


  2. 클래스(3) : 클래스의 구성 요소 / 메서드 2022.05.25

    클래스의 구성 요소 1. 변수 1.1. 공유 변수 1.2. 인스턴스 변수 1.3. 지역 변수 2. 메서드 ← 오늘은 여기 2.1. 인스턴스 메서드 2.2. 클래스 메서드(static,공유 메서드) 3. 초기화(변수) 3.1. 생성자 3.2. 초기화 블록 3.2.1. 인스턴스 블록 3.2.2. 정적(static) 블록 메서드? 재사용을 목적으로 특정 작업을 수행하는 명령문의 집합이다. 객체지향 프로그래밍은 객체와 객체를 상호 연결하여 구현하는 프로그래밍이다. 함수와 유사하게 어떤 값을 입력하면 해당 값으로 작업을 수행하여 결과를 반환한다. 단, 함수와 달리 메서드는 입력값이 없거나, 출력값이 없거나, 둘 다 없을 수도 있다. 왜 사용하는가? 1. 재사용성이 높다. 일단 한 번 메서드를 만들어 놓기만 하면 ..


  3. 클래스(2) : 클래스의 구성 요소 / 변수 2022.05.24

    클래스의 구성요소 1. 변수 ← 오늘은 여기 1.1. 공유 변수 1.2. 인스턴스 변수 1.3. 지역 변수 2. 메서드 2.1. 공유 메서드 2.2. 인스턴스 메서드 3. 초기화(변수) 3.1. 생성자 3.2. 초기화 블록 3.2.1. 인스턴스 블록 3.2.2. 정적(static) 블록 모든 클래스는 디폴트로 4byte 메모리를 가지고 있다. 단, 어떤 멤버변수를 갖고 있느냐에 따라 메모리는 달라진다. 1. 변수 1.1. 멤버변수(전역변수) 클래스 전체에서 사용되는 변수이다. 클래스 블록 내에서 선언된다. 자동 초기화되어있음. 1.1.1.인스턴스 변수 : new를 이용해서 메모리에 저장하는 객체변수(가장 많이 사용됨)로, heap 메모리에 저장된다. : 인스턴스를 생성할 때 생성되고, 참조변수가 없을 때..


  4. 클래스(1) + 변수잡기 연습 2022.05.23

    클래스? 클래스란 "객체를 정의해 놓은 것"으로, 해당 객체가 가져야 하는 기능과 속성을 정의한다. (=설계도) 다시 말해, 객체를 생성하는 데에 클래스가 사용되고 객체는 클래스에 정의된 대로 생성된다. 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다. 클래스를 사용하는 이유 학생에 대한 정보를 관리한다고 했을 때, 학번, 이름, 생년월일 등 다양한 데이터타입으로 이루어진 정보들이 있다고 하자. int studentNo, String studentName, String studentBirth 등 각각의 배열로 저장하기보다는, Student라는 하나의 클래스를 만들어 각 학생별로 고유한 메모리에 해당 학생의 정보를 저장하는 것이 좀 더 효율적이다. 새로운 학생을 추가할 때..


  5. 메서드(5) : call by *** 2022.05.20

    자료형별로 매개변수로 사용될 때 아래와 같은 특징을 갖는다. 호출 방법 Call by value (값 전송) - 기본형, String 인자로 받은 값 자체를 복사하여 호출한다. Read-only 인자가 사용되는 메서드 자체에서만 변경되며, 실제 값은 변경되지 않는다. 실제 값이 보존되기 때문에 안전하지만 메모리 사용량이 늘 수 있다. Call by reference (주소 전송) - 배열, 클래스 인자로 받은 값의 주소를 참조하여 해당 인자 자체를 호출한다. Read&Write 주소 안에서 변경되기 때문에 실제 값도 변경된다. 직접 참조를 하기 때문에 처리속도가 빠르지만 실제 값에 영향을 준다. 예제1 package day15; import java.util.Arrays; public class Meth..


  6. 메서드(4) : 실습, 지역변수 2022.05.19

    지역변수 : 블럭을 기준으로 해당 블럭 내(=메서드 안)에서만 사용될 수 있다. 스택메모리에 저장되며 메서드 호출시에 생성되어 메서드가 끝나면 사라진다. 전역변수 : 블럭 상관없이 사용될 수 있다. static void aaa() { int a=10;{ int b=20;{ int c=30; } //여기부터 c사용할 수 없음 } //여기부터 b 사용할 수 없음 } //여기부터 a 사용할 수 없음 아래 예시에서 변수 a는 increment() 라는 메서드 안에서만 사용되고 삭제되기 때문에, increment()를 여러 번 호출하더라도 a 에 a++가 반영되지 않는다. 하지만 b는 전역변수로 선언했기 때문에 b++가 반영된다. public class VariableEx { static void incremen..


  7. 메서드(3) : 실습 2022.05.18

    오늘은 실습 위주로 진행 실습1. 지니 홈페이지를 크롤링해서 순위권 제목을 가져오는 메서드 package methods2; import java.util.Scanner; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.*; import org.jsoup.select.Elements; public class Exercise1 { static int menu() { //가요POPOST트롯JAZZCLASSIC System.out.println("===== 메뉴 ====="); System.out.println("1. Music Top50"); System.out.println("2. 가요"); System.out.println..


  8. 메서드(2) : 실습 2022.05.17

    메서드는 클래스에 종속되어 클래스 안에서만 사용된다. 완전 객체지향 ⇢ 자바, C# 함수는 독립적으로 사용이 가능하다. ⇢ C언어, 코틀린, 파이썬 등 각 기능을 잘게 쪼개서 구현하고 끌어와서 사용하면 전체적인 코드를 간결하게 만들 수 있고 수정도 용이하다! 지역변수 말 그대로 특정 '지역'에서만 사용이 가능한 변수로, 블록({})이 끝나면 자동으로 사라진다.(=메모리에서 삭제) 메서드 만들기 실습 1. 임의의 정수가 저장된 배열을 정렬하는 문제 package methods; import java.util.Arrays; public class MethodEx3 { // 정렬하는 메서드 // Call By Value,Call By Reference => 매개변수 전송법 static int[] sort(in..


  9. 메서드(1) : 기본개념 2022.05.16

    여러 개의 데이터를 모아서 관리 ⇢ 배열 여러 개의 명령문을 모아서 관리 ⇢ 메서드 즉, 메서드는 특정 작업을 수행하는 명령문의 집합으로 어떤 기능을 구현하기 위한 수단이다. 기본적으로 수학에서 함수와 비슷하며 크게 입력, 처리, 출력 등의 기능을 할 수 있다. 일반적으로 매개변수를 받아 해당 변수로 일련의 처리를 거쳐 결과값을 나타낸다. 하지만 메서드의 종류에 따라 결과값을 반환하기도, 하지 않기도, 매개변수가 필요하기도 필요없기도 하다. 메서드를 왜 만드는가? 1. 필요시마다 호출해서 편리하게 사용이 가능하다. 2. 다른 클래스에서도 사용이 가능하다. 3. 필요할 때 수정, 삭제, 추가가 가능하다. → 재사용성, 가독성, 유지보수성 메서드의 종류 *void는 return을 생략한다! 결과값(리턴형) ..


  10. 문자열(String) 다루기, String 배열 응용 2022.05.13

    String변수 선언 방법 String 클래스는 char[] 에 필요한 메서드이다. int에는 Integer, double에는 Double등 각 데이터형마다 사용하기 쉽도록 클래스가 존재한다. ⇢ Wrapper String 변수명 = new String("내용", "UTF-8"); //원래 String은 클래스이므로 위처럼 new 연산자를 통해 객체를 생성해야 하지만.. String 변수명 = "내용"; //특별히 간략하게 생성하는 것도 허용한다. 문자열 제어 1. 문자의 개수 s.length():int s라는 String변수에 저장된 문자열의 길이를 반환한다. String s1 = "Hello Java"; System.out.println(s1.length()); // 10 2. 문자 자르기 s.sub..