본문 바로가기

전체 글172

Java 다양한 문자열의 함수 문자열 생성하는  2가지 방법//문자열 생성하는 방법 2가지!//1 일반적으로 쓰는 문자열 리터널String str1="Hello";//2 String 생성자를 이용 (코드도 길고, 메모리관리에 적합하지 않아 1을 많이 쓴다)String str2=new String("Hello"); 번외! 문자열 리터널을 쓰는게 좋은이유String str1="Hello";String str2=new String("Hello");String str3="Hello";String str4=new String("Hello");똑같은 문자열을 저장한 4개의 객체어떤 차이가있을까? 문자열리터널은 String Constant Pool이라는 특별한 메모리 영역에 저장된다.  이 영역은 동일한 문자열 리터럴이 여러 번 사용될 때, 메모.. 2024. 12. 16.
Java interface와 extends 실습 예제 package entity;public interface Payable { // 상품 가격 반환 메서드 double getPrice(); // 결제 처리 메서드 void processPayment();} package entity;public class Product { // 기본 상품 클래스 protected String name; protected double price; // 디폴트 생성자 public Product() { } // 생성자: 상품 이름과 가격 초기화 public Product(String name, double price) { this.name = name; this.price = price; .. 2024. 12. 16.
Java의 꽃 상속 - Interface 상속 시리즈1) Extend, Overriding2) Abstract 3) Interface   대망의 상속 마지막 키워드 interface에 대해 알아봅시다. 자바클래스 생성시 인터페이스를 선택하여 만들수도 있고, class 대신 insterface라고 입력하여 사용할 수도 있다. package entity;public interface Card { 인터페이스는 클래스 키워드를 사용하지 않는다.= 인터페이스는 클래스가 아니다!   클래스와 인터페이스는 무슨 차이가 있지?인터페이스는 일반적인 변수가 올 수 없다. (상수 static는 가능!) 변수 불가  상수 가능! public static final int CLOVER = 1;  CLOVER의 값이 1로 정해졌기때문에 10으로 변경불가 final: J.. 2024. 12. 16.
Java 추상화 예제 - 상품 정보, 할인 금액 출력 package entity;public abstract class Product { protected String productId; protected String name; protected double price; // 디폴트 생성자 public Product() { } // 매개변수가 있는 생성자 public Product(String productId, String name, double price) { this.productId = productId; this.name = name; this.price = price; } // 상품 정보를 출력하는 추상 메서드 public abstract void d.. 2024. 12. 16.
Java의 꽃 상속 - Abstract (추상클래스) 상속 시리즈1) Extend, Overriding2) Abstract 3) Interface      // 부모 클래스에서 print라는 함수를 만들건데,    // 이 클래스를 상속받을 사람들은     // 자기네들이 알아서 메소드를 작성할거니까 (==오버라이드)     // 내가 코드 구현은 하지 않고, 함수이름만 통일해주자! 메소드의 시그니처만 정의하고, 구체적인 구현은 없는 메소드 = 추상메소드(Abstract)  public abstract void print();    // 이름만 작성하고 메소드 내용은 작성 X, {}도 안써도 된다.     // 함수이름은 정해두고(통일), 내용은 각 클래스에서 작성     // abstract 뜻은 추상적이다~    // 클래스 이름 앞에 abstract도.. 2024. 12. 16.
Java 접근 제어자 private, protected, public OOP(Object-Oriented Programming)의 4대 원칙캡슐화 (Encapsulation): 객체의 데이터와 그 데이터를 처리하는 메서드를 하나로 묶어 외부에서 직접 접근할 수 없도록 하는 것입니다. 이를 통해 데이터의 무분별한 변경을 방지하고 객체의 안정성을 높입니다.상속 (Inheritance): 기존의 클래스를 기반으로 새로운 클래스를 생성하는 기능으로, 코드의 재사용성을 높이고 중복된 코드 작성을 줄입니다. 예를 들어, '동물' 클래스에서 '포유류' 또는 '조류' 클래스를 파생시킬 수 있습니다.다형성 (Polymorphism): 같은 이름의 메서드가 서로 다른 형태로 동작할 수 있는 능력입니다. 이는 메서드 오버로딩과 오버라이딩을 통해 구현되며, 유연한 코드 작성을 가능하게 합니다... 2024. 12. 15.
Java 반복문 for, while for (초기화; 조건식; 증감식) { // 반복할 코드 } 반복문 for ( int i=0 ; i // int i = 0  i(index) 변수에 0을 저장// 조건식: i // 증감식: i에 +1하여 저장// true면 반복// i가 5가 되면 False이니 실행중단 while (조건식) { // 반복할 코드 } 반복문 int i = 0; while ( i // i 가 0// → i가 5보다 작으면 System.out.println("Hello");// 5보다 커지면 종료  int i = 0;while ( i // i=i+1 은 줄여서 i++로 나타낼 수 있다증가 감소 연산자  // 1,2,3,4,5를 더하는 식// 더할 숫자들 데이터 입력int[] number .. 2024. 12. 15.
Java 조건문 if-else, switch-case if-else문// 가격이 3000원보다 싸면, "가격이 좋습니다."라고 출력하고// 그렇지 않으면 "비싸네요"라고 출력하세요.// ~라면, ~해라 // if (~라면){~해라} else {아니면 ~ 해라}{} 코드로 블록 구분 if(price  조건 연산자- 조건식 ? 결과 1 : 결과 2; 로도 가능가독성과 간결함 중 어느쪽이 우선일지 고려해서 선택하자public class Test { public static void main(String[] args) { int price = 2000; String massage = (price  if-else if-else로 여러 조건을 표현할 수도 있다.public class Test { public static.. 2024. 12. 15.
Java 자료형 없이 변수 선언하기 var 원래 자바의 모든 변수는 사용할 자료형을 정확히 명시해야하나 자바 10부터 생긴 문법 중지역 변수 자료형 추론 (local variable type inference)는변수에 대입되는 자료를 보고 컴파일러가 추측하여 처리가능 public class Test { public static void main(String[] args) { var num =10; var dNum =10.0; var str="hello"; num은 int로, dNum은 double로, str은 String 으로 컴파일러가 처리완료!   주의점:한번 선언한 자료형 변수를 다른 자료형으로 사용할 순 없음-str 변수는 이미 String으로 처리 되었기 때문에 정수값을 넣을 수 .. 2024. 12. 15.