전체 글 97

17. 메소드-4 오버로딩

overloading : 중복 정의>> 하나의 클래스 내에서 동일한 이름의 메소드를 여러 개 정의하는 것 ## 변수는 같은 영역 내에서 동일한 이름의 재선언이 불가능! 오버로딩 성립 조건1) 메소드 이름이 같을것2) 매개변수의 개수, 타입이 다를 것## 반환타입은 오버로딩과 상관이 없음 오버로딩의 장점사용자가 메소드의 매개변수 순서를 외우지 않아도 사용 가능작업의 본질이 동일한 메소드를 하나의 이름으로 그룹화>>코드의 재사용성과 가독성을 향상컴파일 시 타입 체크 강화>>올바른 매개변수를 가진 메소드를 자동 선택 오버로딩의 단점중복적으로 의미없이 생성할 경우, 실질적으로 필요한 구현 메소드 찾기가 어려움 예시class Calc { int add (int a, int b) { return a + b; } /..

java 2025.02.25

17. 메소드-3 메소드의 종류

메소드의 종류: (인스턴스) 메소드, 정적(static) 메소드 클래스 '필드': (인스턴스) 필드, 정적(static) 필드인스턴스 메소드: 객체(인스턴스)를 생성한 후에 호출할 수 있는 메소드 정적 메소드: 객체 생성 없이 호출 가능한 메소드 정적 메소드란? static 키워드를 사용하여 정의된 메소드, 클래스명으로 직접 호출 가능 static 반환타입 메소드명 () {} 클래스명.메소드명(); 정적 메소드 특징 인스턴스 필드(변수)에 의존하지 않는다 클래스 수준에 공유되는 데이터를 다룰 때 적합 정적 메소드 사용 권장 사항 공통 데이터 사용: 모든 인스턴스에 공유되는 값(정적 필드)을 다룰 때 독립적인 사용: 필드값과 관계없이 지역변수만으로 작업 처리 시class Operator { // (인스턴스..

java 2025.02.25

실습) 사칙연산 클래스 만들기

package chapter05;// 사칙연산 클래스// 두개의 값을 매개변수로 받아 사칙연산 수행class MyMath { int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } int multiply(int a, int b) { return a * b; } int divide(int a, int b) { // 메소드의 조건부 반환 if(b == 0) { System.out.println("정수 0으로 나눌수 없습니다"); return 0; }else { return a / b; } } void noReturn() { System.out.println("해당 메소드는 반환값이 없습니..

java 2025.02.25

17. 메소드-2, 함수와 메소드

자바에서는 함수의 개념이 존재하지 않음모든 함수 체계는 "클래스 내부"에 존재하고 "메소드"로 불림 함수: 특정 작업을 수행하는 코드 블록독립적으로 존재하며 클래스에 소속되어 있지 않다호출은 함수명(); 으로 하며주로 Python, JavaScript 등에서 사용한다 메소드: 객체의 동작을 정의한 코드 블록클래스 내부에 포함되며, 객체의 행위와 연결된다객체 생성후,  . 연산자를 통해 호출한다주로 Java, C# 등에서 사용한다 메소드특정 작업을 하나로 묶은 것값들을 입력하면 해당 값들로 작업을 수행하여 결과를 반환한다메소드는 선언부와 구현부로 나뉘어진다선언부: 반환타입 메소드명 (매개변수 들)구현부: {}안의 코드 메소드를 '정의한다' >> 선언부와 구현부를 작성한다 매개변수(Parameter) 선언메..

java 2025.02.25

17. 메소드-1

자바는 객체 지향 프로그래밍 언어이다이때 클래스는 객체를 생성하기 위한 템플릿이다클래스의 구성요소는 필드, 메소드, 생성자이다이중 메소드에 대해 알아보자 메소드의 형태반환타입 메소드명(매개변수...){ 메소드의 기능, 동작 정의 return 반환값;} 반환타입메소드 동작 후 반환하는 데이터의 형태를 지정한다이때 반환 데이터가 없는 경우 void를 지정한다 메소드명lowerCamelCase를 사용하여 선언한다동사를 사용하는걸 권장함 매개변수 목록메소드에 전달되는 입력 값들의 목록0개 이상 지정각 매개변수는 자료형과 함께 선언 return 반환값메소드의 반환을 담당한다 예시public class A_Method { public static void main(String[] args) { // 메소드 ..

java 2025.02.25

16. 참조 자료형

참조 자료형이란?데이터값이 저장되는 heap 메모리의 주소를 변수에 담는 자료형##출력시 메모리 값이 아닌 주소가 출력됨 객체와 배열배열: 출력시 '배열의 클래스 타입' + @ + '해시코드'를 반환한다객체: 출력시 '객체의 클래스명' + @ + '해시코드'를 반환한다int[] numbers = {1, 2, 3};System.out.println(numbers);// [I@2f92e0f4String[] strings = {"안녕"};System.out.println(strings);// [Ljava.lang.String;@28a418fc 문자열 String의 경우내장된 toString() 메소드가 문자열 자체를 반환하도록 오버라이딩 되어 있음String str = "Hello";System.out.pri..

java 2025.02.21

실습) 클래스 생성, 호출

=== 문제 1. 클래스 생성 === 아래의 요구사항에 따라 Person 클래스를 작성 - Person 클래스는 이름(name)과 나이(age)를 저장하는 인스턴스 변수를 가짐 - 기본 생성자를 포함하고, 이름과 나이를 초기화하는 생성자를 추가 - introduce() 메서드를 추가하여 "안녕하세요, 저는 [이름]이고, [나이]살입니다."라는 문장을 출력 === 문제 2. 객체 생성 및 메서드 호출 === Person 클래스를 사용하여 다음과 같은 동작을 수행하는 코드를 작성 - 이름이 "홍길동", 나이가 25인 Person 객체를 생성 - 생성된 객체의 introduce() 메서드를 호출하여 자기소개를 출력 === 문제 3. 클래스 변수 == Person 클래스에 다음 요구사항을 추가 - populat..

java 2025.02.21

15. 필드(Filed)-2. 클래스 변수와 인스턴스 변수

클래스(정적) 변수형태: static 키워드가 데이터타입 앞에 명시선언 위치: 클래스 영역 내생성 시기: 클래스가 Method Area 영역에 할당될 때사용 시기: 객체 생성 이전에도 사용 가능 인스턴스 변수형태: 일반 변수 선언과 동일선언 위치: 클래스 영역 내생성 시기: 인스턴스가 생성될 때사용 시기: 객체 생성 이후에만 사용 가능 정적 변수 예시class Counter { static int count = 0; Counter(){ // 생성자 count++; // count = count + 1; }}public class F_Field { public static void main(String[] args) { Counter c1 = new Counter(); Counter c2 = ne..

java 2025.02.21