전체 글 96

Java* 사용 제한자 static

Static이 무엇인가?정적(static)은 ‘고정된’ 이란 의미를 가지고 있습니다.static이라는 키워드는 필드와 메서드에 붙일 수 있는데,다른 말로 정적 필드와 정적 메서드 라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다.(클래스 멤버라고도 한다.) tipsstatic 그니까 똑같은 값인데 궂이 여러개 만들 일 없는거// 정적 메서드(static) : 모든 객체가 공유하며 객체 생성없이 접근 가능// static 은 this 가 있을 수 없음.// static 데이터는 객체 생성 없이 접근 가능, new 안해도 사용가능   static 필드public class MyClass { public int a; //인스턴스 필드 public static int b; //정적 필드}클래스에 일반 필드..

Java 2024.04.22

Java* 객체지향 캡슐화(encapsulation)

캡슐화(encapsulation) 이란?캡슐화란 객체의 상태와 동작을 하나의 단위로 묶어서 구현하는 것을 의미한다.다시 말하자면,하나의 목적을 이루기 위해 관련 있는 모든 것들을 하나의 캡슐에 담아 두는 것을 의미한다.어떻게 보자면 위에서 소개한 setter 메서드 같은 경우에도 캡슐화의 일환으로 볼 수 있다.객체의 상태를 뜻하는 필드를, 동작을 뜻하는 메서드와 하나의 단위로 묶어서 관리하는 것이기 때문인데, 또 다른 예시를 소개해 보겠다. // 시동 거는 기능public void engineStart() { System.out.println("시동 버튼을 눌렀습니다."); System.out.println("시동이 걸렸습니다.");}// 엔진에 연료가 주입되는 기능private void in..

Java 2024.04.22

Java* 객체지향 접근 제한자 (Access Modifier)

접근 제한자접근 제한자(access modifier)는 클래스, 필드, 메서드, 생성자에 대한접근 권한을 제한하는 키워드이다.자바에서는 다음과 같은 네 가지의 접근 제한자가 있다.  public, : 모두 접근가능protected, : 같은 패키지 내 가능, default보다 주로 사용됨 default, : void 앞에 아무것도 붙지않으면 void private : 같은 클래스 내에서만 접근이 가능하다.   같은 클래스 내의 경우의 코드package day07.modi.pac1;public class A { // 필드 public int f1; int f2; // default 제한 private int f3; // 메서드 public void m1() {} voi..

Java 2024.04.22

Java* 객체지향 상속 (Inheritance)

상속이란 무엇인가일상생활 속에서 상속이란 유, 무형의 자산을 부모로부터 자식이 물려받는 것을 말한다.그렇다면 프로그래밍에서의 상속이란?거의 의미가 동일하다고 할 수 있다.부모 클래스가 가진 속성과 기능을 자식 클래스가 물려받는 것을 말한다. tips // 상속은 확장개념이다. 3g폰이 2g 폰의 기능을 가지고 있듯  상속이 필요한 상황동물 클래스를 여럿 작성한다.  작성하다 보니… 불합리한 점이 발견되었다.각각 클래스는 다르지만, 가지고 있는 속성과 기능이 너무나 비슷한 것을찾아볼 수 있다.모든 동물들 클래스가 name, age, favorite 이라는 속성을 가지고 있고breath() 기능과 sleep() 기능을 가지고 있다.이 상황에서 동물 클래스를 더 제작한다면… 그리고 그 동물들도 모두 같은 속성..

Java 2024.04.22

Java* 객체지향 Practice

문제: 전자 제품 매장 관리 시스템요구사항기본 클래스 ElectronicProduct 생성이 클래스는 모든 전자 제품의 기본이 되는 클래스입니다.속성:productName (제품명, 문자열)price (가격, 실수형)manufacturer (제조사, 문자열)메소드:생성자: 모든 속성을 매개변수로 받아 초기화합니다.displayInfo(): 제품의 정보를 출력하는 메소드. 출력 예: "Samsung TV, 가격: 2000000원, 제조사: Samsung"서브 클래스 Television 생성ElectronicProduct의 서브 클래스입니다.추가 속성:screenSize (화면 크기, 정수형)메소드:생성자: 기본 클래스의 속성과 screenSize를 초기화합니다.displayInfo() 메소드를 오버라이드하..

Java 2024.04.18

Java* 객체지향 생성자, 접근제한자

생성자의 특징생성자의 이름은 클래스의 이름과 대/소문자까지 완벽하게 동일해야 한다.객체를 생성할 때 반드시 호출해야 한다.일종의 메서드지만, 리턴 타입이 없고 리턴값은 주소값으로 고정되어 있음.생성자를 하나도 선언하지 않으면, JVM이 매개변수가 없고, 내용이 없는 가장 기본 형태의 생성자를 하나 생성해 주기 때문에 생성자 선언 없이도 객체 생성은 가능하다.객체를 생성하는 기능 뿐만 아니라, 객체 생성과 동시에 해야 할 일 (필드 초기화) 등을 진행할 수 있다. 접근제한자package day07.encap;public class Car { private String model; // 자동차 모델명 private int speed; // 현재 속도 private char mode; // 변..

Java 2024.04.18

Java* 객체지향 프로그래밍

객체란 무엇인가? 그리고 왜 써야 하는가객체란 데이터와 그 데이터를 처리하는 함수들을 묶어놓은 하나의 독립적인 단위입니다.이렇게 하나의 단위로 묶어놓으면 코드의 가독성이 좋아지고 유지보수가 편리해집니다. 또한 객체 지향 프로그래밍은 코드 재사용성이 높아지고 대규모 프로그램을 개발할 때 유용합니다. //객체 설계용 클래스(라이브러리 클래스)는 메인 메서드를 작성하지 않습니다.public class Pen { //객체의 속성을 필드(멤버변수)라고 부릅니다. String color; int price; String productNo; //객체의 기능을 메서드라고 합니다. void write() { System.out.println(color + "색 글을 씁니다."); } void draw() { S..

Java 2024.04.18

Java* 메서드 basic

public class MethodBasic { // 자바의 함수는 반드시 클래스 블록 내부, 다른 함수 외부에 만들어야 함 // 두개의 정수를 전달받아 합을 리턴하는 함수 static int add(int n1,int n2) { return n1 + n2; // function 대신 return값의 타입에 따라 바꿈 ex) return true 면 boolean add() }// static String[] add(int n1,int n2) {// return new String[]{"hello", "java"};//// } static void multiply(int n1, int n2) { //void return 없음 Syste..

Java 2024.04.12

Java* 배열(array) Scanner

Integer.parseInt 는 문자열을 정수로 바꿔준다.Scanner라는 내장 기능이 자바에는 있는데 print 된 내용에서 값을 불러와 사용 할 수 있다. public class ScannerPractice { public static void main(String[] args) { // 자바에서 키보드 입력받기 Scanner scan = new Scanner(System.in); // 입력준비 딱 1회만 하면 됨 // 문자 입력받기 System.out.print("상품의가격: "); int price = Integer.parseInt(scan.nextLine()); System.out.println("price = "..

Java 2024.04.12
반응형