반응형

데이터 타입

-부울(bool): True or False 자바의 boolean 참 혹은 거짓을 반환

-정수(integer): 숫자

-실수(float): 소수점이 있는 수자 혹은 지수

-문자열(string): 텍스트

 

-객체: 파이썬에서는 모든것이 객체로 구현되어 있음

-변수:단지 이름일 뿐. 의미는 값을 복사 하는 것이 아닌 데이터가 담긴 객체에 이름을 붙이는 것, 그 이름은 객체 자신에 포함되는 것 이라기 보다는 객체의 참조

Ex)

>>> a = 7

>>>type(a)

<class 'int'>

 

>>> a = True

>>> type(a)

<class 'bool'>

 

>>> a = 6.5

>>> type(a)

<class 'float'>

 

>>> a = 'Hi there'

>>> type(a)

<class 'str'>

 

수의 표현

Ex)

>>> 10/4

2.5

 

>>> 10//4 /를 두번 쓰면 부동 소수점을 날리고 정수만 출력

2

 

-연산의 우선순위: 우리가 일상생활에서 사용하는 순서대로 처리

 

-형변환: 데이터 타입의 변화 1과 '1'은 정수형과 문자형으로 다른 타입

Ex)

>>> a = 3.4

>>> type(a)

<class 'float'>

>>>a = int(a)

>>>type(a)

<class 'int'>

 

파이썬2.x

int의 크기: 32bit

long: 64bit

파이썬3.x

long가 사라지고 int의 크기가 유연해짐

메모리가 허용하는 한, 무한대에 가까운 정수와 실수를 표현 할 수 있는 것이다.

 

참고도서

파이썬 메뉴에 있는 글은

처음 시작하는 파이썬(빌 루바노빅, 최길우 옮김) 한빛미디어 도서를 참고했습니다.

 

 

반응형
반응형

상속

-기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것(무언가를 물려준다는 뜻)

-두 클래스를 부모와 자식 관계를 선언하는 것

-자식의 수는 부모의 수보다 같거나 많아야 한다

-재 사용성을 높이고 관리가 쉬움

-단 하나의 클래스만 상속 받을 수 있다.

 

-자식클래스는 부모의 필드 변수와 메서드를 받아 편집해서 사용할 수 있다.

상속 예제

 

정적 바인딩

**

동적 바인딩

-부모의 레퍼런스로 자식에 접근하는 것

-부모가 알고있는 것만 접근가능하다.

 

 

인터페이스

-인터페이스는 객체가 가져야할 특징, 특성 같은 것이지 클래스 X

-클래스가 인터페이스를 물려받을 수 있다.

-추상클래스는 내가 원하는 메소드를 추상메소드로 선언할 수 있는 반면

-인터페이스는 정적 변수나 메소드의 선언만이 올 수 있다

 

-모든 메소드 구현 = 클래스

-일부 메소드 구현 일부 메소드 선언 = 추상 클래스

-모든 메소드 선언 = 인터페이스

 

 

인터페이스

Implements: 인터페이스를 상속

클래스는 여러 개의 인터페이스를 implements 할 수 있다.

implements 예

 

//인터페이스 안에서는 복잡하지 않아 다중 상속이 가능하다

//클래스에 인터페이스를 연결하면 인터페이스에 상속된 다른 인터페이스도 접근 가능하다.

 

반응형
반응형

오버로딩

-동일한 함수명으로 여러 개의 함수를 제공하는 것

-구별할 수 있도록 매개변수 타입” or “타입 개수가 달라야 함

-리턴타입으로 구별할 수 없다

-(중요)같은 기능을 하는 애들끼리 묶어야 한다.

오버로딩

 

-같은 리턴 타입은 오버로딩 불가

 

 

오버로딩

 

This, This()

-자기 자신을 접근할 수 있게 해주는 객체 레퍼런스

-인스턴스 메소드의 첫번째 매개변수로 항상 존재, 만들 수는 없고 존재함

-Static 메소드에는 없다. 모든 객체가 사용하기 때문

This 예제

-메소드 안에서 필드와 매개변수의 이름이 같을 경우 지역 변수가 우선순위가 높기 때문에 매개변수가 지정됨

This 예제

-this를 앞에 붙여주면 필드가 지정됨

This 예제

-this()

This() 예제

 

Final

-값을 변경할 수 없기 때문에 선언과 동시에 초기화 시켜야 한다.

(X)

final선언의 잘못된 예시

(O)

 

FInal선언 예시

-final은 어떤 객체에서나 같은 값이기 때문에 static으로 선언

-static은 메모리 최적화 기능 중 하나

static 예시

 

반응형
반응형

인스턴스(instance)

인스턴스(instance)는 같은 클래스에 속하는 개개의 객체로, 하나의 클래스에서 생성된 객체를 말한다

추상화

본질은 바뀌지 않는다.

최적화

심플하게 만들기

클래스

-is ~a: 상속할 때 사용

-has ~a: 강사님이 마이크를 사용하다.

다형성

편하려고 사용

오버로딩

같은 이름으로 구분해서 부를 수 있다.

-ex) 여자 학생/ 남자 학생 //ㅇㅇ학생

OOP는 항상 사용자 위주로 만들어야 한다

(사용자들이 만족할 수 있도록 개발)

 

제어문 If()

-작업량을 줄이고 분기를 할 것인가를 고민할 때 자주 사용

 

if(조건){true} //조건이 참일 경우, {}을 사용 안 할 경우 첫 번째 ; 까지만 실행

  if else(조건){true} //첫 번째 조건이 거짓, 두 번째 조건이 참일 경우

  else{false} //조건이 거짓일 경우, 참일 경우 건너뜀

Ex)

If문 예제

결과

결과

 

제어문 Switch()

switch(value){

case 1:  //value가 값1일 경우

           break;  //없을 경우 전 라인이 실행됨

case 2:  //value가 값2일 경우

           break;

break;

}

 

Ex)

Switch문 예제

 

결과

결과

반복문 for()

for( 초기문 ; 조건문 ; 증감문 ){

// 조건문이 false일때 탈출

       // 블록내 마지막 라인을 지나고 증감문 실행 조건문 재실행

}

 

Ex)

for문 예제

 

결과 

결과

반복문 While()

While 조건문이 경우 블록안의 코드가 실행됨 거짓 경우 실행X

 

While(조건문){//블록이 없을 경우 첫번째 ‘;’ 까지 실행

 True; //true 경우 실행

       //증감문은 아무 곳에나 작성

}

 

while 사용시 주의사항

while문은 자기 조건식의 초기화를 바로 위에 해주어야 한다.

무한 루프가 돌지 않도록 주의해야 한다.

 

Break 탈출 반복문을 실행 중지할 사용

Continue 증감식 또는 조건식으로 이동(조건문에서 사용X)

 

함수를 만들 모듈로 쪼갠다

 

사각형 종이접기 횟수와 사각형 개수 구하기

사각형 종이접기 횟수와  사각형 개수 구하기

이중for, while문으로 구구단 만들기

이중 for문을 사용해 구구단 만들기

 

Int 정적 메모리 선언

Runtime: array, object 동적 메모리 선언

함수는 함수가 부른다

 

메소드

1.  객체를 만들어야 사용할 수 있는 메소드

2.  만들지 않아도 사용할 수 있는 메소드: static

 

Call by value

 

지역 변수 는 속해있는 method 안에서만 사용 가능

객체 안에 있는 가장 중요한 정보: 필드

필드 private 접근 권한자 사용. 보안이 좋아야 됨

필드와 메소드의 관계는 중요함!

Private((나만 사용가능) ex)지갑: 내 손만 접근가능(메소드)) -> default -> protected(상속 관계만 접근 가능) -> public(모두 접근 가능)

                     

인스턴스, 추상화, 클래스, 다형성, 오버로딩, 제어문, 반복문, 메소드

반응형
반응형

개발자의 필수 조건

1.     프로그래밍 언어

2.     DB

3.     OS(리눅스, 유닉스)

임베디드

자기가 특정 목적으로 사용하는 것 ex)냉장고 온도 조절, 보일러

 

JAVA(100% 객체지향언어)

Object(객체: JAVA 의 기본 단위): 현실세계에 존재하는 것을 정의할 수 있음 / 추상적인것은 객체로 지정할 수 없다 / 명확해야 한다

OOP4대 특징

1.     추상화: 추상적인것을 구체화 시키는 것 (설계라고 할 수 있다)

2.     캡슐화: data를 은닉, 보호하기 위함(상대의 지갑에 얼마가 있나? 알려주기 전엔 알 수 없다. 상대방이 나에게 돈을 줬다면 상대방이 기억한다)

3.     상속: 재활용 가능, 물려주는 것, 코드의 확장 (상속받은 것+ 내가 가지고 있던 것),

4.     다형성: 편의성 때문에 사용

 

상수: 변하지 않는 값

변수: 상수를 저장하는 메모리 변수

아스키 코드: 대문자와 소문자 32 차이

대문자 A 65      소문자 a 97

대문자 B 66      소문자 b 98

      ~                    ~

대문자 F 70      소문자 f 102

 

영어를 제외한 외국어에서 1바이트로 표현하기 어려워 2바이트로 추가함 -> 유니코드

자바의 타입

기본타입 (뒤에 숫자는 바이트 크기)

A.     정수: byte1, char2, short2, int4 주로 쓰임, long8 //상수를 저장하는 메모리 공간

B.     실수: float4, double8

C.     논리: boolean1 //true or false

casting 형변환

자동: int + float=float서로 다른 타입을 연산할 때 작은 타입이 큰 타입을 따라 가며 자동 발생

강제: (double)int + (double)flout= double 계산하는 변수 앞에 “( )”를 사용하여 강제로 발생

 

변수 선언

사용하고자 하는 타입에 맞게 선언 ex) 실수형: int num; // ‘;’ 은 한 줄의 끝을 나타내며 컴퓨터가 인식함, 코딩에 한국말 사용 X 첫글자는 영문자

특수문자 X, 키워드(이미 확보가 된 것 ex)main) X, 변수명은 용도나 기능에 관련된 단어 숫자면 num, 자기만 아는 것 사용 X

초기화

선언한 변수에 값을 넣는다는 것을 의미 ex) int num = 1; //num변수에 1로 초기화. 참고 같다는 의미는 =를 두개 사용 num1 == num2

문자열 초기화

char char1 = ‘A’ // ‘ ‘ 을 사용하여 초기화

레퍼런스 (다음에 배움)

 

문자열

“ ” (String)

문자

‘ ’

복합 할당 연산자

A = A+1 -> A += 1 //컴퓨터가 본인을 다시 호출하는것을 안좋아해요 ㅜ

증감 연산자

1씩 증가될 때만 사용하기 그 외에 사용하면 가독성이 떨어짐

-선증가: B= ++A // A가 1일 때 선위에 작성을 하면 그 줄에서 1을 더해 2가 됩니다. 따라서 B=2

-후증가: B= A++ // A가 1일 때 후위에 작성을 하면 그 다음 줄에서 1을 더한 2가 됩니다. 따라서 B=1

 

관계 연산자

-같다: ==

-같지않다: !=

-작거나 같다 <=

-크거나 같다 >=

삼항 연산자

"조건식" ? "참" : "거짓" ;

//조건식이 true일 경우 "참", false일 경우 "거짓"

자바 컴파일

cmd창 열기

디렉토리 찾아가기

javac *.java //*.java 을 컴파일

java * // 컴파일한 * 을 실행

 

 

자바의 문법 및 개발자들간의 약속

첫 글자가 대문자 Class, 소문자 함수, 변수

전부 대문자 상수

단어와 단어를 합칠 경우 두 번째 단어의 첫 글자를 대문자

 ex)Black+White -> blackWhite 클래스일 경우 BlackWhite

Modifiers: public

Abstract 추상화

Final 상수

Static 여러 곳에서 사용할 때(공유)

Superclass 상속하는 클래스(부모 클래스)

Subclass 상속받는 클래스(자식 클래스)

 

자바 API 예시

Interfaces 추상클래스를 더 추상화 시킨 것, 개수 제한이 없음, (다음에 다시 설명)

Classfinal 은 더 이상 상속을 하지 않겠다는 뜻, has a 관계(다음에 다시 설명)

Implements 라는 키워드를 갖고 interfaces를 받는다.

Class 의 구성요소 3가지 Field, Constructor, method

 

자바 API 예시

Modifier and Type 리턴 값

 

 

자바 프로그램 개발 순서

1. 소스 작성에서 실행

.java 소스 파일 작성 -> 컴파일러(javax.exe)로 바이트 코드 파일(.class) 생성 -> JVM 구동 명령어(java.exe)로 실행

* .java 확장자를 가진 텍스트 파일에 자바 코드를 작성하면 자바 소스파일이라고 말한다.

* 자바 소스 파일을 컴파일러로 통해 컴파일 하며 에러가 없을경우 .class인 바이트 코드 파일이 생성된다.

* ex) Hello.java ---컴파일---> Hello.class 파일 생성

 

반응형

+ Recent posts