반응형
HTML은 마크업 언어이며, 여는 태그  <  > + 닫는 태그 < / > 으로 이루어져 있다.

  • 주석 단축키 : ctrl + /
  • HTML 템플릿 만들기 : ! + tap키
  • 저장 : ctrl + s
  • 실행취소 : ctrl + z
실행결과 확인

오른쪽 마우스 클릭  -> Open with Live Server 선택

실행화면

html 앙크 태그
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- html 앙크 태그 == 링크 태그 : 페이지 이동 태그 -->
    <!-- 사용법 : <a href="페이지주소">내용</a> -->
    <!-- 줄복사 단축키 : ctrl + d -->
    <a href="http://naver.com">네이버</a>
    <a href="http://daum.net">다음</a>
    <a href="http://google.com">구글</a>
</body>
</html>

html anchor 태그는 링크 태그 즉 페이지 이동 태그입니다.

사용법은 <a href="페이지 주소"> 내용 </a> 으로 사용합니다.

해당 링크 선택시 해당 페이지로 이동

html anchor inner 태그
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 줄복사 단축키 : ctrl + d -->
    <!-- 취소 : ctrl + z -->
    <!-- 복사 : ctrl + c -->
    <!-- 붙여넣기 : ctrl + v -->
    <a href="#">언론사 전체보기</a>
    <a href="#alpha">알파 부분</a>
    <a href="#beta">베타 부분</a>
    <a href="#gamma">감마 부분</a>

    <!-- 태그 공통속성 : id(#변수), class  -->
    <h1 id="alpha">알파</h1>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>

    <h1 id="beta">베타</h1>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>

    <h1 id="gamma">감마</h1>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
    <p>안녕하세요 이준혁입니다.</p>
</body>
</html>

태그 공통속성 : id(#변수), class를 사용합니다.
반응형

'HTML > HTML 이론' 카테고리의 다른 글

[HTML] 태그 요약  (0) 2023.08.03
[HTML] 미디어 삽입  (0) 2023.08.03
[HTML] 표 만들기  (0) 2023.08.03
[HTML] 순서가 있는 목록, 순서가 없는 목록 태그  (0) 2023.08.02
[HTML] 텍스트 폰트 태그  (0) 2023.08.02
반응형

 

접근 제어 지시자(access modifier)

클래스 외부에서 클래스이 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드

  1. private : 같은 클래스 내부에서만 접근가능 (외부 클래스, 상속관계의 클래스에서도 접근 불가)
  2. default(아무것도 없음) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가)
  3. protected : 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근할 수 없음
  4. public : 클래스의 외부 어디서나 접근 할 수 있음

bank 클래스에서 balance라는 변수 앞에 private를 사용하면 maintest 클래스에서 balance의 변수를 사용하지 못한다.

getter/setter 메서드

객체의 필드(데이터)를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성(결점이 없는 성질)이 깨질 수 있다.

예를 들어 게임에서 공격력이 음수가 될 수 없는데 외부에서 음수로 변경할 경우 객체의 무결성이 깨진다.

이러한 문제점 때문에 객체 지향 프로그래밍에서는 직접적인 외부에서 필드 접근을 막고 대신 메소드를 통해 필드에 접근 하는 것을 선호한다. 이러한 역할을 하는 메소드가 Setter이다.

public void setPower(int power) {

// 방어적 코드를 작성한다.

if (power <= 0) {

System.out.println("잘못입력하였습니다.");

} else {

this.power = power;

}

 

}

power 매개값이 음수인 경우 잘못입력하였습니다 라는 메시지를 출력한다. 양수 입력인 경우 power에 값을 저장한다.

 

외부에서 객체의 필드를 읽을 때에도 메소드가 필요한 경우가 있다. 필드값이 객체 외부에서 사용하기에 부적절한 경우, 메소드로 적절한 값으로 변환해서 리턴할 수 있기 때문이다. 이러한 역할을 하는 메소드가 Getter이다.

private String name;

private int hp;

private int power;

private int level;

private double defense;

public int getPower() {

return power;

}

power 필드는 private 접근 제한을 가지므로 외부에서 읽지 못한다. power 필드를 읽기 위해서는 Getter 인 getPower() 메소드를 사용해야 한다.

정보은닉
private으로 제어한 멤버 변수도 public 메서드가 제공되면 접근 가능하지만 변수가 public으로 공개되었을 때보다
private일 때 각 변수에 대한 제한을 public 메서드에서 제어 할 수 있다.

객체지향프로그램에서 정보 은닉은 필요한 외부에서 접근 가능한 최소한의 정보를 오픈함으로써 객체의 오류를 방지하여 클라이언트 객체가 더 효율적으로 객체를 활용할 수 있도록 해준다.

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] static 변수  (0) 2023.08.03
[JAVA] 객체 자신을 가리키는 'this'  (0) 2023.08.02
[JAVA] this 키워드  (0) 2023.08.01
[JAVA] 참조 자료형 변수  (0) 2023.08.01
[JAVA] 생성자  (0) 2023.08.01
반응형
this 키워드

객체 내부에는 인스턴스 멤버에 접근하기 위해 this를 사용할 수 있습니다.

우리가 자신을 '나'라고 하듯이, 객체는 자신을 'this'라고 합니다. 생성자와 메소드의 매개변수명이 인스턴스 멤버인 필드명과 동일한 경우, 인스턴스 필드임을 강조하고자 할 때 this를 주로 사용합니다.

 

실행결과

 

포르쉐가 달립니다. (시속 : 100km/h)

벤츠가 달립니다. (시속 : 100km/h)

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 객체 자신을 가리키는 'this'  (0) 2023.08.02
[JAVA] 접근제어지시자  (0) 2023.08.01
[JAVA] 참조 자료형 변수  (0) 2023.08.01
[JAVA] 생성자  (0) 2023.08.01
[JAVA] 배운내용정리 (2)  (0) 2023.07.29
반응형
변수의 자료형 기본 자료형 int, long, float, double 등 ...
참조 자료형 String, Date, Student 등 ...
  • 클래스형으로 변수를 선언
  • 기본자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다르다.
  • 참조 자료형을 사용할 때는 해당 변수에 대해 생성해야 한다. (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)

참조 자료형 정의하여 사용하기


  • 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언

  • Subject.java

  • Student.java

  • StudentTest.java

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 접근제어지시자  (0) 2023.08.01
[JAVA] this 키워드  (0) 2023.08.01
[JAVA] 생성자  (0) 2023.08.01
[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 배운내용정리 (1)  (0) 2023.07.29
반응형
생성자(constructor)
  • 객체를 생성할 때 new 키워드와 함께 사용 // new Strudent( );
  • 생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new와 함께 호출된다.
  • 객체가 생성될 때 변수나 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출함
  • 생성자는 반환 값이 없고, 클래스의 이름과 동일
  • 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private으로 선언되는 경우도 있음
클래스 변수 = new 클래스 ( );

 

기본 생성자(deflault constructor)
  • 컴파일러가 제공해주는 기본 생성자외에 필요에 의해 생성자를 직접 구현할 수 있음
[public] 클래스 ( ) {   }

 

여러가지 생성자를 정의하는 생성자 오버로딩(overloading)

 

생성자 정의하기
  • 생성자를 구현해서 사용할 수 있다.
  • 클래스에 생성자를 따로 구현하면 기본 생성자 (default constructor)는 제공되지 않는다.
  • 생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있다.
클래스(매개변수, ... ) {
// 객체의 초기화 코드
}
반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] this 키워드  (0) 2023.08.01
[JAVA] 참조 자료형 변수  (0) 2023.08.01
[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 배운내용정리 (1)  (0) 2023.07.29
[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
반응형
연산자(Operator)
  • 어떠한 기능을 수행하는 기호(+, -, *, / 등)
피연산자(Operand)
  • 연산자의 작업 대상(변수, 상수, 리터럴, 수식)
연산자의 종류

연산자의 우선순위

  1. 괄호의 우선순위가 제일 높다.
  2. 산술 > 비교 > 논리 > 대입
  3. 단항 > 이항 > 삼항
  4. 연산자의 연산 진행방향은 왼쪽에서 오른쪽 방향 // 단, 단항, 대입 연산자만 오른쪽에서 왼쪽방향이다.

ex1 )   -x + 3        // 단항 > 이항

ex2 )    x + 3 * y   // 곱셈, 나눗셈 > 덧셈, 뺄셈

ex3 )    x + 3 > y - 2  // 산술 > 비교

ex4 )    x > 3  &&  x < 5    // 비교 > 논리

ex5 )    int result  =  x  +  y  *  3;   // 항상 대입은 맨 끝에

 

주의해야 할 몇 가지 사항

  1. <<, >>, >>> 는 덧셈연산자 보다 우선순위가 낮다.

ex 6) x << 2 + 1     x << (2 + 1) 과 같다.

  1. ||,  |(OR)는  &&, &(AND)보다 우선순위가 낮다.

ex 7) x < -1 || x > 3 && x < 5

         x < -1 || (x > 3 && x < 5)와 같다

 

증감연산자 ++, --

증감연산자(++) : 피연산자의 값을 1 증가시킨다.

감소연산자(--) : 피연산자의 값을 1 감소시킨다.

int i = 5;

int j = 0;

전위형 j = ++i; ++i;
j = i;
값이 참조되기 전에 증가시킨다.
후위형 j = i++; j = i;
i++;
값이 참조된 후에 증가시킨다.
부호연산자(+, -)와 논리부정연산자(!)

★ 부호연산자(+, -)

'+' 는 피연산자에 1을 곱하고, '-'는 피연산자에 -1을 곱한다.

★ 논리부정연산자(!)

true는 false로, false는 true)로 피연산자가 boolean 일 때만 사용가능하다.

 

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 참조 자료형 변수  (0) 2023.08.01
[JAVA] 생성자  (0) 2023.08.01
[JAVA] 배운내용정리 (1)  (0) 2023.07.29
[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
[JAVA] 함수와 메서드  (0) 2023.07.28
반응형
변수(Variable)란?
  • 변하는 수
  • 하나의 값을 저장할 수 있는 저장공간.
변수의 타입(Data type)

■ 기본형(Primitive Type)

- 8개 (boolean, char, byte, short, int, long, float, double)

- 실제 값을 저장

■ 참조형(Reference type)

- 기본형을 제외한 나머지(String, System 등...)

- 객체의주소를 저장(4byte, 0x00000000~0xffffffff)

 

  기본형(Primitive Type)
  1. 논리형 - true와 false 중 하나의 값으로 갖으며, 조건식과 논리적 계산에 사용
  2. 문자형 - 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
  3. 정수형 - 정수 값을 저장하는데 사용된다. 주로 사용하는 것은 int와 long이며, byte는 이전데이터를 다루는데 사용되며, short는 c언어와 호환을 위해 추가되었다.
  4. 실수형 - 실수 값을 저장하는데 사용, float와 double이 있다.

변수의 선언 방법

★ 타입 변수명

int score;

score 100;

int score 100;

String str = new String("abc");

          str = null;

 명명규칙(Naming convention)
  • 대소문자가 구분되며 길이에 제한이 없다 // True와 true는 서로 다른 것으로 간주된다.
  • 예약어(Reserved word)를 사용해서는 안 된다. // ture는 예약어라 사용할 수 없지만, True는 가능하다. 
  • 숫자로 시작해서는 안 된다. // top10은 허용하지만, 7up은 허용되지 않는다.
  • 특수문자는 '_' 와 '$' 만을 허용한다. // $harp은 허용되지만 S#arp는 허용되지 않는다.
명명규칙 - 권장사항
  • 클래스 이름의 첫 글자는 항상 대문자로 한다. // 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다. 
  • 여러 단어 이름은 단어의 첫 글자를 대문자로 한다. // lastIndexOf, StringBuffer
  • 상수의 이름은 대문자로 한다. 단어는 '_'로 구분한다. // PI, MAX_NUMBER
변수, 상수, 리터럴
  • 변수(variable) - 하나의 값을 저장하기 위한 공간
  • 상수(constant) - 한 번만 값을 저장할 수 있는 공간
  • 리터럴(literal) - 그 자체로 값을 의미하는것 
int score = 100;
    score = 200;
char ch = 'A';
String str = "abc";
final in MAX = 100;
MAX = 200; // 에러, 상수의 값은 변경불가!
리터럴과 접미사
boolean power = true;
char ch = ‘A’;
char ch = ‘\u0041’;
char tap = ‘\t’;
byte b = 127;
short s = 32767;
int I = 100;
int oct = 0100;
int hex = 0x100;
long l = 10000000000L;
float f = 3.14f;
double d = 3.14d
float f = 100f;
10. -> 10.0
.10 -> 0.10
10f -> 10.0f
3.14e3f -> 3140.0f
1e1 -> 10.0
변수의 기본값과 초기화

변수의 초기화 ?

- 변수에 처름으로 값을 저장하는 것

* 지역변수는 사용되기 전에 반드시 초기화해주어야 한다.

문자와 문자열

정수의 오버플로우(Overflow)

부호가 없는 정수

부호가 있는 정수

형변환(Casting)

형변환이란?

- 값의 타입을 다른 타입으로 변환하는 것

- boolean을 제외한 7개의 기본형은 서로 형변환이 가능

folat f = 1.6f;

int i = (int)f;

1. byte -> int

byte b = 10;

int i = (int) b; // 생략가능

2. int -> byte

int i2 = 300;

byte b2 = (byte) i2; // 생략불가

 

형식화된 출력 - printf()

▶ println()의 단점 - 출력방식을 지정불가하다는 점!

1. 실수의 자리수를 조절불가 - 소수점 n 자리만 출력하려면?

System.out.println(10.0 / 3);  // 3.333333....

2. 10진수로만 출력된다. - 8진수, 16진수로 출력하려면?

System.out.println(0x1A);  // 26

 

▶ printf() 로 출력형식 지정가능하다.

System.out.println("%.2f", 10.0/3);  // 3.33

System.out.println("%d", 0x1A);  // 26

System.out.println("%X", 0x1A);  // 1A

 

printf()의 지시자
  • %b  : 불리언(boolean) 형식으로 출력 (true or false)
  • %d  : 10진수(decimal) 형식으로 출력
  • %o  : 8진수(octal) 형식으로 출력
  • %x, %X  : 16진수(hexa-decimal) 형식으로 출력 (%x는 소문자로, %X는 대문자로 출력)
  • %f  : 부동 소수점(floating point) 형식으로 출력
  • %e, %E  : 지수(exponent) 형식으로 출력
  • %c  : 문자(character) 형식으로 출력 (Unicode)
  • %s  : 문자열(string) 형식으로 출력

public static void main(String[] args) {

System.out.printf("age:%d year:%d\n", 14, 2017);

// "age:14 year:2017\n" 이 화면에 출력된다.

 

int age = 10;

System.out.printf("age:%d", age); // 출력 후 줄바꿈을 하지 않는다.

System.out.printf("age:%d\n", age); // 출력 후 줄바꿈을 한다.

System.out.printf("=================");

// 정수를 10진수, 8진수, 16진수로 출력

System.out.printf("%d\n", 15); // 15 >> 10진수

System.out.printf("%o\n", 15); // 17 >> 8진수

System.out.printf("%x\n", 15); // f >> 16진수

System.out.printf("%s\n", Integer.toBinaryString(15)); // 1111 >> 2진수

 

// 8진수와 16진수에 접두사 붙이기

System.out.printf("%#o\n", 15); // 017

System.out.printf("%#x\n", 15); // 0xf

System.out.printf("%#X\n", 15); // 0xF

 

// 실수 출력을 위한 지시자 %f - 지수형식(%e), 간단한 형식(%g)

float f = 123.4567890f;

System.out.printf("%f", f); // 123.456787 소수점 아래 6자리

System.out.printf("%e", f); // 1.2345678e+02 지수형식

System.out.printf("%g", 123.456789); // 123.457 간략한 형식

System.out.printf("%g", 0.00000001); // 1.00000e-8 간략한 형식

 

System.out.printf("[%5d]%n", 10); // [       10]

System.out.printf("[%-5d]%n", 10); // [10       ]

System.out.printf("[%05d]%n", 10); // [00010]

화면에서 입력받기 - Scanner

★ Scanner 란?

화면으로부터 데이터를 입력받는 기능을 제공하는 클래스

 

★ Scanner를 사용하려면

1. import 문 추가

import java.util.Scanner;

2. Scanner 객체의 생성

Scanner scanner = new Scanner(System.in);

3. Scanner 객체를 사용

Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장

 

String input = scanner.nextLine(); // 화면에서 입력받은 내용은 input에 저장

 

int num = Integer.parseInt(input); // 문자열(input)을 숫자(num)로 변환

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 생성자  (0) 2023.08.01
[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 인스턴스 생성과 힙 메모리  (0) 2023.07.28
[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
반응형
버스 클래스를 정의하고 및 속성을 부여하고 기능을 추가해 출력해보자

버스의 속성에는 개인에 따라 다르겠지만 이런 것들이 있다.

  • 버스번호
  • 승객수
  • 요금

그리고 버스 클래스의 기능을 추가해볼건데 기능에는 간단하게 두 가지를 추가해보았다.

  • 버스 승객 탑승시 승객 카운트 및 총 수입금 계산하는 기능
  • 버스 정보 출력 기능

package ch03;

 

public class Bus {

 

// 속성

int busNumber; // 버스 번호

int count; // 승객수

int money; // 수익금

 

// 기능

public void take(int m) {  // 승객이 버스를 타면 성인요금 1300원이 추가되는 기능

// 0 = 0 + 1300 >> 1300

// 1300 = 1300 + 1300 >> 2600

money += m;

count = count + 1;

}

 

public void showInfo () {

System.out.println(" ==== 상태 창 ====");

System.out.println("버스번호는 : " + busNumber);

System.out.println("승객 수는 : " + count);

System.out.println("현재 수익금은 : " + money);

 

}

}

package ch03;

 

public class BusMainTest {

 

public static void main(String[] args) {

 

Bus bus100 = new Bus();

Bus bus200 = new Bus();

// System.out.println(bus100);

bus100.busNumber = 100; // bus100의 번호는 100번

bus200.busNumber = 200; // bus200의 번호는 200번

 

for (bus100.count = 0; bus100.count < 1000; bus100.count++) { // 버스 승객이 1000명 탔을 경우의 수익금

bus100.money += 1300;

}

for (bus200.count = 0; bus200.count < 100; bus200.count++) {

bus200.money += 1300;

}

bus100.showInfo();

bus200.showInfo();

 

}

 

}

 

[출력값]

==== 상태 창 ====

버스번호는 : 100번

승객 수는 : 1000명

현재 수익금은 : 1300000원

==== 상태 창 ====

버스번호는 : 200번

승객 수는 : 100명

현재 수익금은 : 130000원

반응형
반응형
인스턴스(instance)
  • 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태(설계도면)이다.
  • 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됩니다.
  • 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됩니다.
  • new 키워드를 사용하여 인스턴스를 생성합니다.
힙 메모리
  • 생성된 인스턴스는 동적 메모리(heap memory)에 할당됩니다.
  • C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제시켜야 합니다.
  • Java에서 Gabage Collector가 주기적으로 사용하지 않는 메모리를 수거합니다.
  • 하나의 클래스로부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됩니다.

스택과 힙의 차이점

메모리의 스택 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 공간입니다.

스택영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.

스택영역은 푸시(push) 동작으로 데이터를 저장, 팝(pop) 동작으로 데이터를 꺼냅니다.

이러한 스택은 후입선출 (LIFO, Last-In First-Out) 방식에 따라 동작하며, 가장 늦게 저장된 데이터가 가장 먼저 나오게 됩니다.

1) 매우 빠른 액세스

2) 변수를 명시적으로 할당 해제 할 필요 X

3) 공간은 CPU에 의해 효율적으로 관리, 메모리는 단편화되지 X

4) 지역변수만

5) 변수의 크기를 조정할 수 X

 

메모리의 힙(heap) 영역은 사용자가 직접 관리할 수 있는 메모리 영역입니다.

힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됩니다.

1) 전역 적으로 액세스 할 수 X

2) 메모리 크기 제한 X

3) (상대적으로) 느린 액세스

4) Java new 명령어

 

용어정리

● 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스
● 클래스 : 객체를 프로그래밍 하기위해 코드로 정의해 놓은 상태
● 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태
● 멤버 변수 : 클래스의 속성, 상태, 특성
● 메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현한 함수
● 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
● 참조 값 : 생성된 인스턴스의 메모리 주소 값

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 배운내용정리 (2)  (0) 2023.07.29
[JAVA] 배운내용정리 (1)  (0) 2023.07.29
[JAVA] 함수와 메서드  (0) 2023.07.28
[JAVA] 객채지향 언어  (0) 2023.07.28
[JAVA] break와 continue  (0) 2023.07.27
반응형

유저 클래스를 정의하고 이를 사용해보자

package ex_01;

 

public class User {

// 멤버 변수정의

 

int userAge;

String userId;

String userName;

String address;

String userTel;

 

// 기능 정의

public void logIn() {

System.out.println(userName + "님이 로그인하였습니다.");

}

 

public void logOut() {

System.out.println(userName + "님이 로그아웃하였습니다.");

}

 

public void userInfo() {

System.out.println("=== << " + userName + "님의 정보" + " >> ===");

System.out.println("회원 님의 ID : " + userId);

System.out.println("회원 님의 이름 : " + userName);

System.out.println("회원 님의 나이 : " + userAge + "세");

System.out.println("회원 님의 주소 : " + address);

System.out.println("회원 님의 연락처 : " + userTel);

System.out.println("==============================");

}

}

package ex_01;

 

public class UserMainTest {

 

public static void main(String[] args) {

 

User UserKim = new User();

UserKim.userName = "김철수";

UserKim.userId = "kimchulsoo1234";

UserKim.address = "부산광역시";

UserKim.userAge = 25;

UserKim.userTel = "010-1234-5678";

 

UserKim.logIn();

UserKim.logOut();

UserKim.userInfo();

 

User UserPark = new User();

UserPark.userName = "박민수";

UserPark.userId = "minsupark5555";

UserPark.address = "서울특별시";

UserPark.userAge = 30;

UserPark.userTel = "010-5555-4444";

 

UserPark.logIn();

UserPark.logOut();

UserPark.userInfo();

 

}

 

}

[출력값]

김철수님이 로그인하였습니다.

김철수님이 로그아웃하였습니다.

=== << 김철수님의 정보 >> ===

회원 님의 ID : kimchulsoo1234

회원 님의 이름 : 김철수

회원 님의 나이 : 25세

회원 님의 주소 : 부산광역시

회원 님의 연락처 : 010-1234-5678

==============================

박민수님이 로그인하였습니다.

박민수님이 로그아웃하였습니다.

=== << 박민수님의 정보 >> ===

회원 님의 ID : minsupark5555

회원 님의 이름 : 박민수

회원 님의 나이 : 30세

회원 님의 주소 : 서울특별시

회원 님의 연락처 : 010-5555-4444

==============================

반응형

'Java > Java 연습문제' 카테고리의 다른 글

[JAVA] 상속 구조로 클래스 만들어보기  (0) 2023.08.08
[JAVA] 클래스 정의 및 활용 실습  (0) 2023.07.28
[JAVA] 함수구현하기  (0) 2023.07.28
[JAVA] 클래스 코딩하기  (0) 2023.07.28
[JAVA] 랜덤게임문제  (0) 2023.07.27
반응형
두 개의 매개 변수를 받아 덧샘을 하는 함수를 작성해보자!

package ch02;

 

public class FunctionMainTest {

 

// 함수란?

// 두개의 매개 변수를 받아서 덧셈하는 기능을 만들기

// 함수를 선언하는 문법

public static int addNumber(int n1, int n2) {

// 결과를 담을 변수를 선언

int result;

result = n1 + n2;

return result;

}

 

public static double minusNumber(int n1, int n2) {

int result;

result = n1 - n2;

return result;

}

 

public static void main(String[] args) {

 

int returnValue = addNumber(10, 5); // 함수를 호출하는 문법

System.out.println(returnValue);

 

int returnValue2 = addNumber(100, 7895);

System.out.println(returnValue2);

 

// 함수 호출은 모양 맞추기이다.

double returnValue3 = minusNumber(5, 100);

System.out.println(returnValue3);

 

}

 

}

void 함수를 활용하여 인사말을 출력하는 함수를 만들어보자.

 

package ch02;

 

public class FunctionMainTest2 {

 

// 메인 함수

public static void main(String[] args) {

 

sayHello("안녕 좋은 아침이야");

sayHello("반가워~~");

int result = calcSum();

System.out.println(result);

 

} // end of main

 

// 함수에는 여러가지 종류가 있다. - 정수값을 반환하는 함수

public static int add(int n1, int n2, int n3) {

// 함수안에 사용하는 변수는 - 지역변수라고 한다.

// return 키워드 뒤에 바로 식을 사용할 수도 있다.

return n1 - n2 - n3;

}

 

// 아무것도 반환하지 않는 함수도 있다.

// void >> 텅 빈이라는 의미

public static void sayHello(String greeting) {

System.out.println(" ** " + greeting + " **^^ ");

 

}

 

// 매개변수는 반드시 없어도 된다.

public static int calcSum() {

int sum = 0;

int i = 1;

for (i = 1; i < 101; i++) {

sum += i;

}

return sum;

}

 

} // end of class

반응형
반응형
학생(Student) 라는 클래스를 생성하고 하위 속성에 이름, 나이, 몸무게를 작성하시오.

package ch01;

 

// 클래스를 설계할 때 이름을 잘 짓는 것이 중요하다.

// Student class 설계 도면

public class Student {

// 속성

int age;

double weight;

// 문자열이라는 데이터 타입이다.

String name;

 

} // end of class

package ch01;

 

public class MainTest1 {

 

// 코드의 시작점

public static void main(String[] args) {

 

Student kim;

Student hong; // 변수의 선언

hong = new Student(); // 변수의 초기화

hong.age = 10; // . 연산자 -> 객체안에 들어간다.

// 화면에 hong age 값을 출력하시오.

System.out.println(hong.age);

 

} // end of main

} // end of class

게임 캐릭터 중 Warrior 라는 캐릭터 클래스를 작성해보고 속성값도 작성해보자.

public class Warrior {

 

// 속성(상태) - 멤버 변수

int damage; // 공격력

String name; // 닉네임

String color; // 피부색

double height; // 키

 

} // end of class

package ch01;

 

public class MainTest2 {

 

// 메인함수

public static void main(String[] args) {

 

// 메인 함수안에 선언하는 변수는 >> 지역 변수

 

Warrior w1; // 변수에 선언 > 참조 타입

// new 키워드를 만나면 메모리에 올려준다.

// 메모리에 올라가면 프로그램 세상에 존재하게 된다.

w1 = new Warrior();

 

w1.name = "작은 오크";

w1.color = "초록색";

w1.height = 50;

w1.damage = 100;

 

Warrior w2;

w2 = new Warrior();

 

w2.name = "큰 오크";

w2.color = "파란색";

w2.height = 200;

w2.damage = 500;

 

} // end of main

 

} // end of class

반응형

'Java > Java 연습문제' 카테고리의 다른 글

[JAVA] 멤버변수와 메서드를 활용한 실습  (0) 2023.07.28
[JAVA] 함수구현하기  (0) 2023.07.28
[JAVA] 랜덤게임문제  (0) 2023.07.27
[JAVA] While 문 연습문제  (0) 2023.07.27
[JAVA] for문 연습문제  (0) 2023.07.27

+ Recent posts