회원 기본 정보 아이디 4~12자의 영문 대소문자와 숫자로만 입력 비밀번호 4~12자의 영문 대소문자와 숫자로만 입력 비밀번호 확인 메일 주소 예) id@domain.com 이름 개인 신상 정보 주민등록번호 - 예)123456-1234567 생일 년 1 2 3 4 5 6 7 8 9 10 11 12 월 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 일 관심분야 컴퓨터 인터넷 여행 영화감상 음악감상 자기소개
색상 : 빨강 초록 파랑 크기 : 1 2 3 4 취소선 크게 작게 두껍게 기울임 위첨자 아래첨자 소문자로 대문자로 위의 파일을 JAVA SCRIPT 파일과 HTML 파일 2개로 나누어 보기~ 2개의 파일이 같은 경로에 있어야함 HTML 파일 색상 : 빨강 초록 파랑 크기 : 1 2 3 4 취소선 크게 작게 두껍게 기울임 위첨자 아래첨자 소문자로 대문자로 JAVA SCRIPT 파일 function previewString(){ //id를 불러와서 인식 var objResult = document.getElementById("result"); var objText = document.getElementById("tbString"); var objFontColor = document.getElementById..
비교 연산자 : 두 개의 값을 비교 일치함 : === - 두 값이 같은 객체를 가리키거나, 같은 타입이고 값도 같을 때 동등함 : == - 두 값이 같은 객체를 가리키고나, 같은 값을 갖도록 변환할 수 있을 때 #거의 없다고 생각하고 사용 Ex) 문자열 '33'은 숫자 33으로 변환할 수 있으므로 둘은 동등 하지만! 타입이 다르므로 일치하지는 않음 const x = 5; const y = "5"; n === s; //false -> 타입이 다름 n !== s; //true n === Number(s); //true -> 문자열 "5"를 숫자 5로 변환 n !== Number(s); //false n == s; //true -> 권장하지 않음 n != s; //false -> 권장하지 않음 const a ..
package Grade; import java.util.Iterator; import java.util.LinkedList; import java.util.Scanner; class Student { private String name; private int kor; private int eng; private int math; private int total; private float avg; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKor() { return kor; } public void setKor(int kor) { this.kor = k..
동기화 : 멀티 스레드 프로그램에서 임계영역을 처리할 경우, 심각한 문제가 발생할 수 있는데 이를 해결할 방법 #임계영역 : 멀티 스레드에 의해 공유자원이 참조될 수 있는 코드의 범위 - 공정 처리 : 여러개의 스레드가 하나의 컴퓨팅 자원을 사용하기 위해 동시에 접근하는 프로그램을 작성 할 경우, 모든 스레드는 공정하게 그 자원을 사용할 수 있도록 함 - 기아 상태 : 하나의 동작이 독점하여 동작되는 상태 -> 공정하지 않음 -> wait( )와 notify( )를 사용하여 해결 class ATM implements Runnable { private long depositeMoney = 10000; public void run() { synchronized (this) { for (int i = 0; i..
프레임 사용 방법 2가지 - 첫번째 방법 import java.awt.*; public class FrameEx { public static void main(String[] args) { Frame f = new Frame(); f.setTitle("Frame Text"); f.setSize(300,300); f.setVisible(true); } } - 두번째 방법 import java.awt.*; public class FrameEx extends Frame { public FrameEx() { System.out.println("프레임 테스트"); setSize(300, 300); // 프레임 크기 setVisible(true); // 창 띄우기 } public static void main(St..
내부 클래스 - outter class의 멤버를 자유롭게 씀 -> 확장 - static 필드를 쓸 목적 1. member inner class public class MemberInner { //초기화 시켜주면 안되지만 확인을 위해 초기화 private int a = 10; public int b = 20; protected static int c = 30; class Member{ //Inner class public void disp() { System.out.println(a); System.out.println(b); System.out.println(c); } } public static void main(String[] args) { //MemberInner mi = new MemberInne..
인터페이스 - 상수와 추상 메소드만 갖고 있다 - 시간 단축 -> 강제성을 갖고 있기 때문에 무조건 정의되어있는 것들을 오버라이딩 해줘야 한다 - 독립적 프로그램 가능 - 동적 바인딩 가능 - 같은 놈들끼리 상속 가능 - 다중 상속 가능 -> 왜? 이름 밖에 선언을 하지 않기 때문 Ex) interface A { (final static) int a = 10; (abstract) void disp(); } #상속은 가져다 써!! 인터페이스는 만들어!! 뭐 이런 느낌... 중첩 인터페이스 : 클래스의 멤버로 선언된 인터페이스 - 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위함 - UI 프로그래밍에서 이벤트 처리 목적 ex) class A { interface I { void mtehod( );..
import java.util.Scanner; abstract class Memory { protected int[] m; protected int count; Memory(){ //생성자 m = new int[20]; count = 0; //초기화 } public void push(int i) { if(full()) { m[count++] = i; } } //추상 클래스 abstract int pop(); abstract boolean full(); abstract boolean empty(); } class MyStack extends Memory{ @Override public int pop() { if(empty()) { return m[--count]; } else return -1; } @Ov..
super 클래스는 항상 자식 생성자의 첫번째 디폴트에 생략되어 있다 == : 위치비교 .equals( ) : 값 비교 final class : 상속 금지 - 확장 불가 -> has ~a관계 가능 final method : 오버라이딩 금지 final 변수 : 값 변경 금지 -> 상수 추상 메소드 - 공통된 이름만 제공 -> 자식이 기능을 만들어야함 (강제성) - 객체를 만들 수 없다 - 추상 클래스를 객체로 만들 수 있는 예외적인 경우 : anonymous inner class -> 이벤트 처리 - C++에서 순수 가상 함수와 같은 기능을 한다 - 미완성 메소드 - 여러개를 받을 수 있는 interface를 선호
import java.util.Scanner; public class Calc { // 재귀 public static int calc(String input) { int pos; // indexof(); - 문자가 없으면 -1반환 pos = input.indexOf('+'); // +의 위치를 알려줘! System.out.println(input); if (pos != -1) { // 문자가 있으니까 -1이 아니여야 함 return calc(input.substring(0, pos)) + calc(input.substring(pos + 1)); } else { pos = input.indexOf('-'); if (pos != -1) { return calc(input.substring(0, pos)) -..
성적 처리 프로그램 1. 입력 - 한명씩 2. 전체 출력 / 오름차순으로 출력 3. 검색 - 이름 검색 / 성적 (국어, 영어, 수학, 총점) 검색 4. 수정 - 이름을 받아서 각 과목 수정 5. 삭제 - 이름을 받아서 삭제 import java.util.Scanner; class Name { //이름 private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } class Score { //점수 private int score; public int getScore() { return score; } public void setScore(int score)..
배열 : 동일한 데이터 타입을 순차적으로 저장 장점 : 일괄처리 int [ ] arr; -> 스텍이라는 공간에 arr이라는 공간이 생김 arr = new int[5]; -> 힙 영역에 5개가 생긴다 Stack 영억 ↙ Heap 영역 public class Array { public static void main(String[] args) { //for-each int a[] = {1,2,3,4,5,6}; for(int i :a) { System.out.println(i); } } } 2차원 배열 public class Array { public static void main(String[] args) { //2차원 배열 //arr[0] = new int[2]; //arr[1] = new int[7]; i..
this : 자기 자신을 참조하는 레퍼런스 변수 - 인스턴스 메소드에 첫번째 인자에 존재 사용 - 자기 자신을 return 할 때 -> 반복 처리 public class ThisCall { private int a; private int b; public ThisCall() { this(0, 0); System.out.println("디폴트 생성자"); // a = b = 0; } public ThisCall(int data) { this(data, 0); System.out.println("생성자 -> " + data); //a = data; //b = 0; } public ThisCall(int data1, int data2) { System.out.println("생성자 -> " + data1 + ..
static : 객체를 만들지 않음 클래스 : 첫글자가 대문자로 시작 자바는 100% 상속구조이다 - extends object를 안해줘도 object를 상속 받고 있다 #JAVA의 char는 2byte 객체를 만들 때에는 무조건 ( )를 선언해줘야 한다 대,소문자를 구별한다 - static : 모든 객체가 공유한다 - 메모리를 낭비하지 않기 위함 'private static 필드명' 을 사용하고 싶을 때, static 메소드를 통해서 사용한다 필드 : 메소드를 통해 사용한다 ex) setter, getter 메소드 : 외부에서 필드를 접근 할 수 있게 권한을 줌 자바에서는 포인터 개념이 없다 -> 레퍼런스 변수를 포인터 대신으로 사용하는 개념
템플릿 - 다형성의 종류 중 하나 - 일반화 프로그램 -> 타입 제한이 없다. 즉, 타입을 지정해 줄 수 없다 기본 형태 template 종류 1. Template 함수 - C++에서만 존재 -> JAVA에서는 없다 #include "stdafx.h" #include #include using namespace std; template void change(T &t1, T &t2); void main() { int a = 1, b = 2; char c = 'A', d = 'B'; float e = 3.7f, f = 4.3f; change(a, b); cout
string을 사용하지 않고 string 역할을 하는 객체를 생성하여 사용 #include "stdafx.h" #pragma warning(disable:4996) #include #include using namespace std; class MyString { char *str; //문자 메모리 공간 할당 int len; //문자열 길이 저장 변수 public : MyString() { len = 0; str = NULL; } //소멸자 ~MyString() { delete[] str; } //1번 MyString(const char *p) { //문자열 길이 구하기 len = strlen(p) + 1; //길이를 알려주는 함수 -> null이 빠지기 때문에 +1을 해줌 //메모리 할당 str = n..
연산자 함수 : 객체를 가지고 연산 처리를 할 수 있게 해주는것 - 값 + 객체 - 원래 의미를 바꾸지 말라 -> 이유 : 동적 메모리 할당 - 새로운 연산자를 만들면 안된다 - friend를 많이 쓰는 대표적인 함수 기본 형태 리턴타입 operator 연산자(매개변수 리스트); #default로 존재하는 함수 - 생성자 소멸자 복사 대입연산자 中 대입연산자 사용 #복사 생성자 : 객체 생성 할 때 객체를 대입하기 위해 만듬 #대입 : 객체 생성 이후에 객체를 대입하는것 방법 1. 멤버 함수 - this가 있다 : 자기 자신으로 넘길 수 있다 #include "stdafx.h" #include using namespace std; class A { int a; public : A(int a = 1000)..