Day 11

·2023년 6월 21일
0

Global_2023_2

목록 보기
10/56
post-custom-banner

1. 아래의 BankAccount 객체에 대하여 그림을 그리시오.

BankAccount ref1 = new BankAccount();
BankAccount ref2 = ref1;

2.this 의 용도 2가지를 설명하시오.

  • 객체가 생성 되었을때 자기 자신
  • 생성자 : 다른 생성자에서 생성자 호출 할때 this 생성자 호출

3. 아래의 클래스를 만드시오.

TV myTV = new TV("LG", 2017, 32);
myTV.show();
//LG 에서 만든 2017년형 32인치 TV

class TV{
String brand;
int year;
int inch;
TV(String brand,int year,int inch){
	this.brand = brand;
	this.year = year;
	this.inch = inch;
}
void show() {
System.out.println(brand + "에서 만든 " + year + "년형 " + inch + "인치 TV");	}}

4. 생성자에 대하여 설명하시오.

  • 초기화 메소드를 대신하는 생성자 함수
    • 데이터 타입이 없다
    • new 뒤에 오는것
    • 클래스 이름과 같은것

5. 디폴트 생성자란 무엇인가?

  • 개발자가 클래스 안에 생성자를 안넣게 되면 컴파일러가 넣는다.

    • 그것이 defalut 생성자

    • 개발자가 생성자를 한개라도 만들어놨으면
      컴파일러는 만들어 주지 않는다

6. 아래를 프로그래밍 하시오.

노래 한 곡을 나타내는 Song 클래스를 작성하라. Song은 다음 필드로 구성된다.

  • 노래의 제목을 나타내는 title
  • 가수를 나타내는 artist
  • 노래가 발표된 연도를 나타내는 year
  • 국적을 나타내는 country

또한 Song 클래스에 다음 생성자와 메소드를 작성하라.

  • 생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
  • 노래 정보를 출력하는 show() 메소드
  • main() 메소드에서는 1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"을
    song 객체로 생성하고 show()를 이용하여 노래의 정보를 다음과 같이 출력하라.

1978년 스웨덴국적의 ABBA가 부른 Dancing Queen

class Song{
String title;
String artist;
int year;
String country;
	Song(){}
	Song(String title,String artist,int year,String country){
	this.artist = artist;
	this.country = country;
	this.title = title;
	this.year = year;
}
void show() {
	System.out.println(year+"년 "+country+" 국적의 "+artist+"가 부른 "+title);
}}public class Abba {
public static void main(String[] args) {
	Song singer = new Song("DancingQueen","ABBA",1978,"Sweden");
	singer.show();}}

"코딩은 지식🧠에서 나온다."


1. 패키지란?

  • 홈페이지 처럼 .으로 단어를 나눔
  • 패키지를 안만들면 default 패키지 (이름이 없는)
  • *을 쓰면 한 패키지 전부 가져오기 가능
  • 폴더로 구별 같은것

2. 정보은닉이란?

  • 정보은닉 : 문법 오류를 띄워서 부정확한 정보를 표시하지 않도록 함
    (private 선언으로 접근제한)
    • 문법을 만들어서(도입해서) 컴파일 에러를 때려버림
    • 파이썬, 자바스크립트에는 없음

3. 접근 제한자 4가지를 정리 하시오.

  • 4가지의 접근제한자
    • public >
      (class, 함수, 변수에서 붙는것 : 언제 어디서나)
      protected >
      상수관련(안중요)
      default >
      (class에서 붙는것, 아무것도 없이 자동으로 써지는것 <투명>
      다른 패키지에서는 접근 불가, import와는 관계없음)
      private
      (자기 클래스 내에서만 접근 가능, 외부는 불가)

    • 무조건 private (다이렉트로 값 못넣게 : get,set 함수로 넣게)
    • 기본적인 함수는 public

4.로컬 변수에 접근제한자가 안붙는 이유?

  • 로컬 변수(함수 안에 변수)에서 접근제한이 없는 이유
    • 메모리에서 사라지기 때문 (의미가 없다)

Point

  • 외워야 하는것

    • 원넓이 구하는 클래스
    • 사각형 구하는 클래스
    • 성적표 구하는 클래스
  • 클래스 : 붕어빵틀
    메소드 : 붕어빵
    (경력 3년 이상은 비유금지👻)

  • 매개변수 : 파라미터

  • String 에서 " " 만 써도 됨

  • 초기화 : 값을 처음으로 할당하는 것

  • 클래스 이름 규칙 : 첫문자는 대문자로 (새로 시작하는 단어도)
    예시 : Circle + Point = CirclePoint

  • 메소드와 변수 규칙 : 첫문자는 소문자 (새로 시작하는 단어는 대문자)
    예시 : Add + Your + Money = addYourMoney

  • 상수 이름 규칙 : 모든 문자를 대문자 (둘 이상의 단어는 언더바로 연결)
    예시 : final int COLOR_RAINBOW = 7;

  • C#은 자바와 비슷하다

  • 자바의 반대인 객체지향언어 : 데이터 + 함수 (클래스가 없음)

  • OOP의 특징

    • 상속
    • 정보은닉
    • 다형성 (자바의 70%)
    • 캡슐화
    • 그외
      • 클래스
      • 추상화
post-custom-banner

0개의 댓글