프로그래밍
-
[JAVA] static 멤버, static 메소드프로그래밍/JAVA 2020. 8. 5. 01:14
static 멤버의 선언 class StaticSample { int n;// non-static 필드 void g() {....} // non-static 메소드 static int m;// static 필드 static void f() {....}// static 메소드 } non-static 멤버와 static 멤버의 차이점 non-static 멤버 static 멤버 공간적 특성 멤버는 객체마다 별도 존재 - 인스턴스 멤버라고 부름 멤버는 클래스 당 하나 생성 - 멤버는 객체 내부가 아닌 별도의 공간(클래스 코드가 적재되는 메모리)에 생성 - 클래스 멤버라고 부름 시간적 특성 객체 생성시에 멤버 생성됨 - 객체가 생길 때 멤버도 생성 - 객체 생성 후 멤버 사용 가능 - 객체가 사라지면 멤버도 사라..
-
[JAVA] 자바 리플렉션(Java Reflection)프로그래밍/JAVA 2020. 7. 31. 19:05
리플렉션(Reflection)이란? 구체적인 클래스 타입을 알지 못해도 해당 클래스의 생성자, 메소드, 타입, 변수들에 접근할 수 있도록 도와주는 기본적으로 Java에서 제공하는 API 리플렉션의 필요성? 동적으로 클래스를 사용해야할 때 필요. 작성 시점에는 어떤 클래스를 사용해야할 지 모르는 경우, 런타임 시점에서 클래스를 가져와서 실행해야 하는 경우에 사용 ex) IntelliJ의 자동완성, 스프링 프레임워크의 어노테이션 등 ※ 런타임 : 프로그래밍 언어가 구동되는 환경 리플렉션의 원리 Java에서는 모든 .class 파일 하나당 java.lang.Class 객체를 하나씩 생성된다. Class는 모든 .class들의 정보를 가지고 있으며 .class 파일에 같이 저장된다. 모든 .class들은 이 클..
-
[JAVA] 상속 예제프로그래밍/JAVA 2020. 7. 26. 02:23
public class ParentClass { int openYear = 1995; public ParentClass() { System.out.println("부모 클래스 생성자"); } public void parentFun() { System.out.println("parentFun()"); } private void privateFun() { System.out.println("privateFun()"); } public void makeJJajang() { System.out.println("makeJJajang() START"); } } public class FirstChildClass extends ParentClass { int openYear = 2010; public FirstChi..
-
[JAVA] 접근지정자(Access Specfier)프로그래밍/JAVA 2020. 7. 26. 02:08
자바의 4가지 접근 지정자 접근 지정자(Access Specifier)는 클래스나 멤버들을 다른 클래스에서 접근해도 되는지의 여부를 선언하는 지시어 자바에는 private, protected, public, default 4가지 접근 지정자가 존재 클래스 접근 지정 다른 클래스에서 이 클래스를 활용할 수 있는지 허용 여부를 지정하는 것 public 클래스 클래스 이름 앞에 public으로 선언된 클래스 패키지에 상관없이 다른 어떤 클래스에게도 사용이 허용 // public 클래스 public class Public { .......... } default 클래스 접근 지정자 없이 클래스를 선언한 경우 default로 접근 지정됨 같은 패키지 내의 클래스들에게만 사용이 허용 // default 클래스 cl..
-
[JAVA] 가비지 컬렉터(Garbage Collector)프로그래밍/JAVA 2020. 7. 26. 02:06
객체의 소멸과 가비지 자바는 객체를 생성하는 new 연산자는 있지만 객체를 소멸시키는 연산자는 없음 => 개발자가 마음대로 객체를 소멸시킬 수 없음 객체 소멸이란 new에 의해 생성된 객체 공간을 JVM(Java Virtual Machine)에게 돌려주어 가용 메모리에 포함시키는 것 C++과 다르게 delete 연산자, 소멸자가 존재하지 않음 => 할당받은 메모리를 반환하는 코딩으로부터 자유로움 자바에서 new로 할당받은 후 사용하지 않게 된 객체 혹은 배열 메모리를 가비지라고 부름 JVM의 가비지 컬렉터(Garbage Collector)가 적절한 시점에 자동으로 가비지를 수집하여 가용 메모리에 반환 ※ JVM : 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램(메모리 관리, 가비지 컬렉션 ..
-
[JAVA] 클래스와 객체 + 생성자프로그래밍/JAVA 2020. 7. 26. 00:38
객체 지향 언어의 특성 캡슐화(Encapsulation) 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것 외부의 접근으로부터 안전 객체의 캡슐화가 기본 원칙 but 외부와의 접속을 위해 부분 공개 노출 ex) TV는 내부를 캡슐화하고 On/Off 버튼, 채널 버튼, 음량 버튼 등을 리모컨과의 통신을 위해 공개 노출 상속(Inheritance) 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장 자식 클래스 == 서브 클래스 // 부모 클래스 = 슈퍼 클래스 다형성(Polymorphism) 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현 상속관계에 있는 서브 클래스에서 동일한 이름으로 메소드를 다시 구현하는 오버라이딩 같은 클래스 내에서 이름이 같지만 서로 다르..
-
[PHP] 게시판 만들기 - 댓글 기능 구현 ② (ajax 활용)프로그래밍/PHP 2020. 7. 19. 18:19
저번 실습에서는 LiveRe에서 제공하는 댓글 서비스를 이용하여 댓글 기능을 기존의 프로젝트에 추가해봤습니다. 이번시간에는 직접 첫 실습에서 설계한 DB를 기반으로 ajax 통신을 이용해 다음과 같이 댓글 기능을 구현해보도록 하겠습니다. 실습은 다음과 같은 순서로 진행됩니다. 1. 댓글 목록 페이지 디자인을 위한 reply.css 2. 댓글 목록 페이지 및 기능 구현, 모달창 구현 read.php 3. 댓글 기능 이벤트 구현(ajax) reply.js 4. 댓글 작성 기능 구현 reply_ok.php 5. 댓글 삭제 기능 구현 reply_delete.php 1. 댓글 목록 페이지 디자인 /* 댓글 css */ .reply_view { width:900px; margin-top:100px; word-bre..
-
[PHP] 게시판 만들기 - 댓글 기능 구현 ① (LiveRe 활용)프로그래밍/PHP 2020. 7. 11. 14:16
이번 실습에서는 댓글 기능을 구현해보도록 하겠습니다. 두 가지 방법을 이용하여 댓글을 구현해보도록 할건데, 첫번째는 LiveRe라는 댓글 서비스를 이용해보고, 두번째로는 직접 ajax를 이용하여 댓글을 구현해볼 예정입니다. 이번 시간에는 먼저 첫번째 방법을 이용해 댓글 기능을 정말 간단하게 구현해보는 시간을 가져보겠습니다. 1. LiveRe 회원가입 및 사용 https://www.livere.com/ 라이브리 간편한 사진/동영상 첨부 www.livere.com 먼저 라이브리 홈페이지에 들어가서 회원가입을 진행해줍니다. 해당하는 부분을 잘 따라오면 회원가입을 하라는 안내가 잘 나오고, 다른 부가적인 설명없이 잘 진행될 것이라고 생각합니다. 해당하는 부분을 개인의 환경에 맞게끔 잘 설정해주고 '코드발급 신청..