[{"data":1,"prerenderedAt":1940},["ShallowReactive",2],{"post-document:\u002Fjava\u002Foop\u002F2026\u002F08\u002F10\u002Fjava-class-object\u002F":3},{"id":4,"title":5,"body":6,"categories":1920,"date":1922,"description":1923,"extension":1924,"image":1925,"key_concepts":1925,"last_modified_at":1925,"legacyPath":1926,"meta":1927,"navigation":284,"part":1929,"path":1930,"published":284,"robots":1925,"seo":1931,"series":1932,"stem":1933,"strengths":1925,"summary":1925,"tags":1934,"tradeoffs":1925,"__hash__":1939},"posts\u002Fposts\u002FBackend\u002FJAVA\u002Foop\u002F2026-08-10-java-class-object.md","Java 객체지향 Part 1: 클래스, 객체, 필드와 생성자",{"type":7,"value":8,"toc":1900},"minimark",[9,13,38,51,56,178,183,186,199,215,233,250,254,257,310,313,330,340,344,353,356,364,392,406,415,419,422,425,448,457,461,464,491,497,503,511,514,532,538,545,552,570,588,597,601,604,610,613,630,675,683,686,712,720,723,733,769,779,785,791,810,816,824,827,832,915,936,940,943,946,970,974,1077,1083,1092,1111,1114,1133,1139,1148,1161,1165,1184,1194,1198,1201,1229,1245,1251,1255,1261,1307,1327,1330,1350,1357,1360,1369,1453,1497,1501,1575,1578,1628,1632,1741,1793,1796,1854,1858,1864,1896],[10,11,5],"h2",{"id":12},"java-객체지향-part-1-클래스-객체-필드와-생성자",[14,15,16,17,21,22,21,25,21,28,21,31,21,34,37],"p",{},"Java를 이해하려면 먼저 ",[18,19,20],"code",{},"클래스",", ",[18,23,24],{},"객체",[18,26,27],{},"인스턴스",[18,29,30],{},"필드",[18,32,33],{},"메서드",[18,35,36],{},"생성자","를 구분해야 한다. 이 글에서는 각 용어를 다음 순서로 설명한다.",[39,40,41,45,48],"ol",{},[42,43,44],"li",{},"용어의 정확한 정의",[42,46,47],{},"서로 어떤 관계인지",[42,49,50],{},"코드에서 어떻게 사용하는지",[52,53,55],"h3",{"id":54},"_1-핵심-용어-한눈에-보기","1. 핵심 용어 한눈에 보기",[57,58,59,75],"table",{},[60,61,62],"thead",{},[63,64,65,69,72],"tr",{},[66,67,68],"th",{},"용어",[66,70,71],{},"정확한 정의",[66,73,74],{},"쉬운 비유",[76,77,78,94,108,122,136,150,164],"tbody",{},[63,79,80,88,91],{},[81,82,83,84,87],"td",{},"클래스(",[18,85,86],{},"Class",")",[81,89,90],{},"객체를 만들기 위한 설계도이며, 객체가 가질 필드와 메서드를 정의한 코드 단위",[81,92,93],{},"자동차 설계도",[63,95,96,102,105],{},[81,97,98,99,87],{},"객체(",[18,100,101],{},"Object",[81,103,104],{},"프로그램 실행 중 클래스에 따라 실제로 만들어진 데이터",[81,106,107],{},"실제 자동차",[63,109,110,116,119],{},[81,111,112,113,87],{},"인스턴스(",[18,114,115],{},"Instance",[81,117,118],{},"특정 클래스에서 생성된 객체라는 관계를 강조하는 표현",[81,120,121],{},"자동차 설계도로 만든 한 대의 자동차",[63,123,124,130,133],{},[81,125,126,127,87],{},"필드(",[18,128,129],{},"Field",[81,131,132],{},"클래스 안에 선언되어 객체의 상태를 저장하는 변수",[81,134,135],{},"자동차의 색상, 속도",[63,137,138,144,147],{},[81,139,140,141,87],{},"메서드(",[18,142,143],{},"Method",[81,145,146],{},"클래스 안에 선언되어 객체의 동작을 정의하는 코드 블록",[81,148,149],{},"자동차의 가속, 정지",[63,151,152,158,161],{},[81,153,154,155,87],{},"생성자(",[18,156,157],{},"Constructor",[81,159,160],{},"객체가 생성될 때 필드를 초기화하는 특별한 코드 블록",[81,162,163],{},"자동차를 출고할 때 기본 설정",[63,165,166,172,175],{},[81,167,168,169,87],{},"참조값(",[18,170,171],{},"Reference",[81,173,174],{},"객체가 있는 곳을 가리키는 값",[81,176,177],{},"자동차 주차 위치",[179,180,182],"h4",{"id":181},"객체와-인스턴스의-차이","객체와 인스턴스의 차이",[14,184,185],{},"두 단어는 실제 대화에서 비슷하게 사용하지만 강조점이 다르다.",[187,188,189,194],"ul",{},[42,190,191,193],{},[18,192,24],{},": 실행 중 존재하는 실체라는 점을 강조한다.",[42,195,196,198],{},[18,197,27],{},": 어떤 클래스에서 만들어졌는지를 강조한다.",[200,201,206],"pre",{"className":202,"code":203,"language":204,"meta":205,"style":205},"language-java shiki shiki-themes github-light github-dark","Stock stock = new Stock(\"SKALA\", 17000);\n","java","",[18,207,208],{"__ignoreMap":205},[209,210,213],"span",{"class":211,"line":212},"line",1,[209,214,203],{},[14,216,217,218,221,222,224,225,228,229,232],{},"위 코드에서 ",[18,219,220],{},"new Stock(...)","으로 Heap에 만들어진 실체는 ",[18,223,24],{},"다. 동시에 ",[18,226,227],{},"Stock"," 클래스에서 만들어졌으므로 ",[18,230,231],{},"Stock의 인스턴스","라고도 부른다.",[14,234,235,236,239,240,21,243,21,246,249],{},"참고로 Java의 모든 클래스는 기본적으로 ",[18,237,238],{},"java.lang.Object","를 직접 또는 간접적으로 상속한다. 다만 ",[18,241,242],{},"int",[18,244,245],{},"double",[18,247,248],{},"boolean"," 같은 기본형은 객체가 아니다.",[52,251,253],{"id":252},"_2-클래스는-설계도다","2. 클래스는 설계도다",[14,255,256],{},"클래스는 객체를 만들기 전에 객체의 구조와 기능을 정의한다. 클래스 선언만 했다고 객체가 바로 만들어지는 것은 아니다.",[200,258,260],{"className":202,"code":259,"language":204,"meta":205,"style":205},"public class Stock {\n    String name;    \u002F\u002F 필드\n    double price;   \u002F\u002F 필드\n\n    void printInfo() {  \u002F\u002F 메서드\n        System.out.println(name + \" : \" + price);\n    }\n}\n",[18,261,262,267,273,279,286,292,298,304],{"__ignoreMap":205},[209,263,264],{"class":211,"line":212},[209,265,266],{},"public class Stock {\n",[209,268,270],{"class":211,"line":269},2,[209,271,272],{},"    String name;    \u002F\u002F 필드\n",[209,274,276],{"class":211,"line":275},3,[209,277,278],{},"    double price;   \u002F\u002F 필드\n",[209,280,282],{"class":211,"line":281},4,[209,283,285],{"emptyLinePlaceholder":284},true,"\n",[209,287,289],{"class":211,"line":288},5,[209,290,291],{},"    void printInfo() {  \u002F\u002F 메서드\n",[209,293,295],{"class":211,"line":294},6,[209,296,297],{},"        System.out.println(name + \" : \" + price);\n",[209,299,301],{"class":211,"line":300},7,[209,302,303],{},"    }\n",[209,305,307],{"class":211,"line":306},8,[209,308,309],{},"}\n",[14,311,312],{},"이 클래스는 다음을 정의한다.",[187,314,315,324],{},[42,316,317,21,320,323],{},[18,318,319],{},"name",[18,321,322],{},"price",": Stock 객체가 가질 상태",[42,325,326,329],{},[18,327,328],{},"printInfo()",": Stock 객체가 수행할 동작",[14,331,332,333,335,336,339],{},"하지만 아직 ",[18,334,227],{}," 객체가 만들어진 것은 아니다. 객체를 만들려면 ",[18,337,338],{},"new","를 사용한다.",[52,341,343],{"id":342},"_3-객체와-인스턴스-만들기","3. 객체와 인스턴스 만들기",[200,345,347],{"className":202,"code":346,"language":204,"meta":205,"style":205},"Stock scala = new Stock();\n",[18,348,349],{"__ignoreMap":205},[209,350,351],{"class":211,"line":212},[209,352,346],{},[14,354,355],{},"실행 흐름은 다음과 같다.",[200,357,362],{"className":358,"code":360,"language":361,"meta":205},[359],"language-text","Stock 클래스의 설계 정보 확인\n          │\n          ▼\nHeap에 Stock 객체 생성\n          │\n          ▼\nscala 변수에는 그 객체를 가리키는 참조값 저장\n","text",[18,363,360],{"__ignoreMap":205},[187,365,366,371,377,383],{},[42,367,368,370],{},[18,369,227],{},": 어떤 클래스의 객체를 만들지 나타내는 타입",[42,372,373,376],{},[18,374,375],{},"scala",": 객체를 가리키는 참조형 변수",[42,378,379,382],{},[18,380,381],{},"new Stock()",": Heap에 새로운 Stock 객체를 생성하는 표현",[42,384,385,388,389,391],{},[18,386,387],{},"=",": 생성된 객체의 참조값을 ",[18,390,375],{},"에 대입",[200,393,395],{"className":202,"code":394,"language":204,"meta":205,"style":205},"Stock scala = new Stock();\nStock ai = new Stock();\n",[18,396,397,401],{"__ignoreMap":205},[209,398,399],{"class":211,"line":212},[209,400,346],{},[209,402,403],{"class":211,"line":269},[209,404,405],{},"Stock ai = new Stock();\n",[14,407,408,410,411,414],{},[18,409,375],{},"와 ",[18,412,413],{},"ai","는 서로 다른 Stock 객체를 가리킨다. 같은 클래스에서 만들어졌지만 객체는 각각 독립적으로 존재한다.",[52,416,418],{"id":417},"_4-필드field-객체의-상태를-저장하는-변수","4. 필드(Field): 객체의 상태를 저장하는 변수",[179,420,421],{"id":421},"정의",[14,423,424],{},"필드란 클래스 내부에 선언된 변수다. 필드는 객체의 상태나 클래스 전체가 공유하는 값을 저장한다.",[200,426,428],{"className":202,"code":427,"language":204,"meta":205,"style":205},"public class Stock {\n    String name;\n    double price;\n}\n",[18,429,430,434,439,444],{"__ignoreMap":205},[209,431,432],{"class":211,"line":212},[209,433,266],{},[209,435,436],{"class":211,"line":269},[209,437,438],{},"    String name;\n",[209,440,441],{"class":211,"line":275},[209,442,443],{},"    double price;\n",[209,445,446],{"class":211,"line":281},[209,447,309],{},[14,449,450,451,453,454,456],{},"여기서 ",[18,452,319],{},"과 ",[18,455,322],{},"가 필드다.",[179,458,460],{"id":459},"인스턴스-필드","인스턴스 필드",[14,462,463],{},"인스턴스 필드는 객체마다 독립적으로 존재하는 필드다.",[200,465,467],{"className":202,"code":466,"language":204,"meta":205,"style":205},"Stock scala = new Stock();\nStock ai = new Stock();\n\nscala.name = \"SKALA\";\nai.name = \"SKALA AI\";\n",[18,468,469,473,477,481,486],{"__ignoreMap":205},[209,470,471],{"class":211,"line":212},[209,472,346],{},[209,474,475],{"class":211,"line":269},[209,476,405],{},[209,478,479],{"class":211,"line":275},[209,480,285],{"emptyLinePlaceholder":284},[209,482,483],{"class":211,"line":281},[209,484,485],{},"scala.name = \"SKALA\";\n",[209,487,488],{"class":211,"line":288},[209,489,490],{},"ai.name = \"SKALA AI\";\n",[14,492,493,494,496],{},"두 객체는 같은 ",[18,495,319],{}," 필드를 가지고 있지만, 실제 값은 서로 다르게 저장된다.",[200,498,501],{"className":499,"code":500,"language":361,"meta":205},[359],"scala ──▶ Stock 객체 1: name = \"SKALA\"\nai    ──▶ Stock 객체 2: name = \"SKALA AI\"\n",[18,502,500],{"__ignoreMap":205},[179,504,506,507,510],{"id":505},"정적-필드static-field","정적 필드(",[18,508,509],{},"static"," field)",[14,512,513],{},"정적 필드는 특정 객체가 아니라 클래스에 소속된 필드다. 해당 클래스의 모든 객체가 하나의 값을 공유한다.",[200,515,517],{"className":202,"code":516,"language":204,"meta":205,"style":205},"public class Stock {\n    static int count;\n}\n",[18,518,519,523,528],{"__ignoreMap":205},[209,520,521],{"class":211,"line":212},[209,522,266],{},[209,524,525],{"class":211,"line":269},[209,526,527],{},"    static int count;\n",[209,529,530],{"class":211,"line":275},[209,531,309],{},[14,533,534,537],{},[18,535,536],{},"count","는 Stock 객체마다 따로 생기는 값이 아니다. Stock 클래스에 하나만 존재하며 모든 Stock 객체가 함께 사용한다.",[179,539,541,542,87],{"id":540},"상수constant","상수(",[18,543,544],{},"constant",[14,546,547,548,551],{},"상수는 한 번 정해진 뒤 변경하지 않는 값이다. Java에서는 보통 ",[18,549,550],{},"static final","로 선언한다.",[200,553,555],{"className":202,"code":554,"language":204,"meta":205,"style":205},"public class Stock {\n    public static final String MARKET = \"KOSPI\";\n}\n",[18,556,557,561,566],{"__ignoreMap":205},[209,558,559],{"class":211,"line":212},[209,560,266],{},[209,562,563],{"class":211,"line":269},[209,564,565],{},"    public static final String MARKET = \"KOSPI\";\n",[209,567,568],{"class":211,"line":275},[209,569,309],{},[187,571,572,577,583],{},[42,573,574,576],{},[18,575,509],{},": 클래스에 하나만 만든다.",[42,578,579,582],{},[18,580,581],{},"final",": 값을 다시 대입할 수 없다.",[42,584,585,587],{},[18,586,550],{},": 클래스 전체가 공유하며 변경할 수 없는 값이다.",[14,589,590,591,593,594,596],{},"단, ",[18,592,581],{}," 필드라고 해서 항상 컴파일 시점의 상수인 것은 아니다. 생성자에서 한 번만 값을 대입하는 ",[18,595,581],{}," 인스턴스 필드도 만들 수 있다.",[52,598,600],{"id":599},"_5-생성자constructor-객체-초기화-담당","5. 생성자(Constructor): 객체 초기화 담당",[179,602,421],{"id":603},"정의-1",[14,605,606,607,609],{},"생성자는 ",[18,608,338],{},"로 객체를 만들 때 자동으로 실행되는 특별한 코드 블록이다. 객체의 초기 상태를 설정하는 데 사용한다.",[14,611,612],{},"생성자의 규칙은 다음과 같다.",[187,614,615,618,625],{},[42,616,617],{},"이름이 클래스 이름과 같아야 한다.",[42,619,620,621,624],{},"반환형을 작성하지 않는다. ",[18,622,623],{},"void","도 작성하지 않는다.",[42,626,627,629],{},[18,628,338],{},"를 사용해 객체를 만들 때 호출된다.",[200,631,633],{"className":202,"code":632,"language":204,"meta":205,"style":205},"public class Stock {\n    String name;\n    double price;\n\n    public Stock(String name, double price) {\n        this.name = name;\n        this.price = price;\n    }\n}\n",[18,634,635,639,643,647,651,656,661,666,670],{"__ignoreMap":205},[209,636,637],{"class":211,"line":212},[209,638,266],{},[209,640,641],{"class":211,"line":269},[209,642,438],{},[209,644,645],{"class":211,"line":275},[209,646,443],{},[209,648,649],{"class":211,"line":281},[209,650,285],{"emptyLinePlaceholder":284},[209,652,653],{"class":211,"line":288},[209,654,655],{},"    public Stock(String name, double price) {\n",[209,657,658],{"class":211,"line":294},[209,659,660],{},"        this.name = name;\n",[209,662,663],{"class":211,"line":300},[209,664,665],{},"        this.price = price;\n",[209,667,668],{"class":211,"line":306},[209,669,303],{},[209,671,673],{"class":211,"line":672},9,[209,674,309],{},[200,676,677],{"className":202,"code":203,"language":204,"meta":205,"style":205},[18,678,679],{"__ignoreMap":205},[209,680,681],{"class":211,"line":212},[209,682,203],{},[14,684,685],{},"위 코드는 다음 순서로 동작한다.",[39,687,688,691,697,705],{},[42,689,690],{},"Heap에 Stock 객체를 만든다.",[42,692,693,696],{},[18,694,695],{},"Stock(String name, double price)"," 생성자를 호출한다.",[42,698,699,700,21,702,704],{},"전달받은 값을 객체의 ",[18,701,319],{},[18,703,322],{}," 필드에 저장한다.",[42,706,707,708,711],{},"생성된 객체의 참조값을 ",[18,709,710],{},"stock"," 변수에 저장한다.",[52,713,715,716,719],{"id":714},"_6-this-현재-객체를-가리키는-참조","6. ",[18,717,718],{},"this",": 현재 객체를 가리키는 참조",[179,721,421],{"id":722},"정의-2",[14,724,725,727,728,732],{},[18,726,718],{},"는 현재 실행 중인 인스턴스 메서드나 생성자에서 ",[729,730,731],"strong",{},"현재 객체 자신을 가리키는 참조","다. 흔히 “현재 객체의 주소”라고 설명하지만, Java에서는 주소 자체보다 객체를 가리키는 참조라고 표현하는 것이 정확하다.",[200,734,736],{"className":202,"code":735,"language":204,"meta":205,"style":205},"public class User {\n    private String name;\n\n    public User(String name) {\n        this.name = name;\n    }\n}\n",[18,737,738,743,748,752,757,761,765],{"__ignoreMap":205},[209,739,740],{"class":211,"line":212},[209,741,742],{},"public class User {\n",[209,744,745],{"class":211,"line":269},[209,746,747],{},"    private String name;\n",[209,749,750],{"class":211,"line":275},[209,751,285],{"emptyLinePlaceholder":284},[209,753,754],{"class":211,"line":281},[209,755,756],{},"    public User(String name) {\n",[209,758,759],{"class":211,"line":288},[209,760,660],{},[209,762,763],{"class":211,"line":294},[209,764,303],{},[209,766,767],{"class":211,"line":300},[209,768,309],{},[14,770,771,772,775,776,778],{},"여기서 왼쪽 ",[18,773,774],{},"this.name","은 현재 객체의 필드이고, 오른쪽 ",[18,777,319],{},"은 생성자의 매개변수다.",[200,780,783],{"className":781,"code":782,"language":361,"meta":205},[359],"this.name = name;\n│           │\n│           └─ 생성자에 전달된 매개변수\n└─ 현재 객체의 필드\n",[18,784,782],{"__ignoreMap":205},[14,786,787,788,790],{},"매개변수 이름을 다르게 쓰면 ",[18,789,718],{},"가 없어도 된다.",[200,792,794],{"className":202,"code":793,"language":204,"meta":205,"style":205},"public User(String userName) {\n    name = userName;\n}\n",[18,795,796,801,806],{"__ignoreMap":205},[209,797,798],{"class":211,"line":212},[209,799,800],{},"public User(String userName) {\n",[209,802,803],{"class":211,"line":269},[209,804,805],{},"    name = userName;\n",[209,807,808],{"class":211,"line":275},[209,809,309],{},[14,811,812,813,815],{},"하지만 필드와 매개변수 이름이 같을 때는 ",[18,814,718],{},"를 사용해야 둘을 구분할 수 있다.",[52,817,819,820,823],{"id":818},"_7-super-부모-클래스에-접근하는-키워드","7. ",[18,821,822],{},"super",": 부모 클래스에 접근하는 키워드",[179,825,421],{"id":826},"정의-3",[14,828,829,831],{},[18,830,822],{},"는 현재 클래스의 부모 클래스 부분을 가리키는 키워드다. 부모의 생성자를 호출하거나 부모의 필드와 메서드에 접근할 때 사용한다.",[200,833,835],{"className":202,"code":834,"language":204,"meta":205,"style":205},"class Product {\n    protected String name;\n\n    Product(String name) {\n        this.name = name;\n    }\n}\n\nclass Stock extends Product {\n    private double price;\n\n    Stock(String name, double price) {\n        super(name); \u002F\u002F 부모 Product 생성자 호출\n        this.price = price;\n    }\n}\n",[18,836,837,842,847,851,856,860,864,868,872,877,883,888,894,900,905,910],{"__ignoreMap":205},[209,838,839],{"class":211,"line":212},[209,840,841],{},"class Product {\n",[209,843,844],{"class":211,"line":269},[209,845,846],{},"    protected String name;\n",[209,848,849],{"class":211,"line":275},[209,850,285],{"emptyLinePlaceholder":284},[209,852,853],{"class":211,"line":281},[209,854,855],{},"    Product(String name) {\n",[209,857,858],{"class":211,"line":288},[209,859,660],{},[209,861,862],{"class":211,"line":294},[209,863,303],{},[209,865,866],{"class":211,"line":300},[209,867,309],{},[209,869,870],{"class":211,"line":306},[209,871,285],{"emptyLinePlaceholder":284},[209,873,874],{"class":211,"line":672},[209,875,876],{},"class Stock extends Product {\n",[209,878,880],{"class":211,"line":879},10,[209,881,882],{},"    private double price;\n",[209,884,886],{"class":211,"line":885},11,[209,887,285],{"emptyLinePlaceholder":284},[209,889,891],{"class":211,"line":890},12,[209,892,893],{},"    Stock(String name, double price) {\n",[209,895,897],{"class":211,"line":896},13,[209,898,899],{},"        super(name); \u002F\u002F 부모 Product 생성자 호출\n",[209,901,903],{"class":211,"line":902},14,[209,904,665],{},[209,906,908],{"class":211,"line":907},15,[209,909,303],{},[209,911,913],{"class":211,"line":912},16,[209,914,309],{},[187,916,917,923,933],{},[42,918,919,922],{},[18,920,921],{},"extends",": 자식 클래스가 부모 클래스를 상속한다는 뜻",[42,924,925,928,929,932],{},[18,926,927],{},"super(name)",": 부모 생성자 ",[18,930,931],{},"Product(String name)"," 호출",[42,934,935],{},"부모 생성자 호출은 자식 생성자의 첫 번째 문장에 작성한다.",[52,937,939],{"id":938},"_8-메서드method-객체의-동작을-정의하는-코드","8. 메서드(Method): 객체의 동작을 정의하는 코드",[179,941,421],{"id":942},"정의-4",[14,944,945],{},"메서드는 클래스 내부에 선언된 코드 블록으로, 특정 작업을 수행한다. 입력을 받을 수도 있고, 결과를 반환할 수도 있다.",[200,947,949],{"className":202,"code":948,"language":204,"meta":205,"style":205},"[접근 제어자] [반환형] [메서드 이름](매개변수 목록) {\n    \u002F\u002F 실행할 코드\n    return 반환값; \u002F\u002F 반환형이 void가 아닐 때\n}\n",[18,950,951,956,961,966],{"__ignoreMap":205},[209,952,953],{"class":211,"line":212},[209,954,955],{},"[접근 제어자] [반환형] [메서드 이름](매개변수 목록) {\n",[209,957,958],{"class":211,"line":269},[209,959,960],{},"    \u002F\u002F 실행할 코드\n",[209,962,963],{"class":211,"line":275},[209,964,965],{},"    return 반환값; \u002F\u002F 반환형이 void가 아닐 때\n",[209,967,968],{"class":211,"line":281},[209,969,309],{},[179,971,973],{"id":972},"메서드-구성-요소","메서드 구성 요소",[57,975,976,988],{},[60,977,978],{},[63,979,980,983,985],{},[66,981,982],{},"구성 요소",[66,984,71],{},[66,986,987],{},"예시",[76,989,990,1006,1023,1036,1049,1062],{},[63,991,992,995,998],{},[81,993,994],{},"접근 제어자",[81,996,997],{},"어디에서 호출할 수 있는지 결정하는 키워드",[81,999,1000,21,1003],{},[18,1001,1002],{},"public",[18,1004,1005],{},"private",[63,1007,1008,1011,1014],{},[81,1009,1010],{},"반환형",[81,1012,1013],{},"메서드가 호출한 곳에 돌려주는 값의 타입",[81,1015,1016,21,1018,21,1021],{},[18,1017,242],{},[18,1019,1020],{},"String",[18,1022,623],{},[63,1024,1025,1028,1031],{},[81,1026,1027],{},"메서드 이름",[81,1029,1030],{},"메서드의 동작을 나타내는 이름",[81,1032,1033],{},[18,1034,1035],{},"getPrice()",[63,1037,1038,1041,1044],{},[81,1039,1040],{},"매개변수(Parameter)",[81,1042,1043],{},"메서드가 실행될 때 받을 입력을 저장하는 변수",[81,1045,1046],{},[18,1047,1048],{},"double price",[63,1050,1051,1054,1057],{},[81,1052,1053],{},"본문",[81,1055,1056],{},"실제 작업을 작성하는 중괄호 안의 코드",[81,1058,1059],{},[18,1060,1061],{},"{ ... }",[63,1063,1064,1069,1072],{},[81,1065,1066],{},[18,1067,1068],{},"return",[81,1070,1071],{},"결과를 호출한 곳에 돌려주고 메서드를 종료하는 문장",[81,1073,1074],{},[18,1075,1076],{},"return price;",[179,1078,1080,1082],{"id":1079},"void란",[18,1081,623],{},"란?",[14,1084,1085,1087,1088,1091],{},[18,1086,623],{},"는 메서드가 호출한 곳에 ",[729,1089,1090],{},"반환할 값이 없다는 뜻의 반환형","이다.",[200,1093,1095],{"className":202,"code":1094,"language":204,"meta":205,"style":205},"public void printInfo() {\n    System.out.println(\"주식 정보\");\n}\n",[18,1096,1097,1102,1107],{"__ignoreMap":205},[209,1098,1099],{"class":211,"line":212},[209,1100,1101],{},"public void printInfo() {\n",[209,1103,1104],{"class":211,"line":269},[209,1105,1106],{},"    System.out.println(\"주식 정보\");\n",[209,1108,1109],{"class":211,"line":275},[209,1110,309],{},[14,1112,1113],{},"이 메서드는 화면에 출력하는 작업은 하지만 결과값을 돌려주지는 않는다.",[200,1115,1117],{"className":202,"code":1116,"language":204,"meta":205,"style":205},"public double calculatePriceChange(double before, double after) {\n    return after - before;\n}\n",[18,1118,1119,1124,1129],{"__ignoreMap":205},[209,1120,1121],{"class":211,"line":212},[209,1122,1123],{},"public double calculatePriceChange(double before, double after) {\n",[209,1125,1126],{"class":211,"line":269},[209,1127,1128],{},"    return after - before;\n",[209,1130,1131],{"class":211,"line":275},[209,1132,309],{},[14,1134,1135,1136,1138],{},"이 메서드는 ",[18,1137,245],{}," 값을 반환하므로 호출한 곳에서 결과를 받을 수 있다.",[200,1140,1142],{"className":202,"code":1141,"language":204,"meta":205,"style":205},"double change = calculatePriceChange(100, 120); \u002F\u002F change는 20.0\n",[18,1143,1144],{"__ignoreMap":205},[209,1145,1146],{"class":211,"line":212},[209,1147,1141],{},[14,1149,1150,1152,1153,1156,1157,1160],{},[18,1151,623],{},"는 ",[18,1154,1155],{},"0","이나 ",[18,1158,1159],{},"null","을 반환한다는 뜻이 아니다. 애초에 반환값이 없는 것이다.",[179,1162,1164],{"id":1163},"메서드-호출","메서드 호출",[200,1166,1168],{"className":202,"code":1167,"language":204,"meta":205,"style":205},"Stock stock = new Stock(\"SKALA\", 17000);\nstock.updatePrice(18000);\nstock.printInfo();\n",[18,1169,1170,1174,1179],{"__ignoreMap":205},[209,1171,1172],{"class":211,"line":212},[209,1173,203],{},[209,1175,1176],{"class":211,"line":269},[209,1177,1178],{},"stock.updatePrice(18000);\n",[209,1180,1181],{"class":211,"line":275},[209,1182,1183],{},"stock.printInfo();\n",[14,1185,1186,1189,1190,1193],{},[18,1187,1188],{},"stock.updatePrice(...)","처럼 객체 뒤에 점(",[18,1191,1192],{},".",")을 붙여 인스턴스 메서드를 호출한다.",[52,1195,1197],{"id":1196},"_9-매개변수parameter와-인자argument","9. 매개변수(Parameter)와 인자(Argument)",[14,1199,1200],{},"두 용어는 비슷하지만 위치가 다르다.",[200,1202,1204],{"className":202,"code":1203,"language":204,"meta":205,"style":205},"public int add(int a, int b) { \u002F\u002F a, b는 매개변수\n    return a + b;\n}\n\nint result = add(10, 20);      \u002F\u002F 10, 20은 인자\n",[18,1205,1206,1211,1216,1220,1224],{"__ignoreMap":205},[209,1207,1208],{"class":211,"line":212},[209,1209,1210],{},"public int add(int a, int b) { \u002F\u002F a, b는 매개변수\n",[209,1212,1213],{"class":211,"line":269},[209,1214,1215],{},"    return a + b;\n",[209,1217,1218],{"class":211,"line":275},[209,1219,309],{},[209,1221,1222],{"class":211,"line":281},[209,1223,285],{"emptyLinePlaceholder":284},[209,1225,1226],{"class":211,"line":288},[209,1227,1228],{},"int result = add(10, 20);      \u002F\u002F 10, 20은 인자\n",[187,1230,1231,1238],{},[42,1232,1233,1234,1237],{},"매개변수(",[18,1235,1236],{},"Parameter","): 메서드 선언부에서 입력을 받기 위해 선언한 변수",[42,1239,1240,1241,1244],{},"인자 또는 전달인자(",[18,1242,1243],{},"Argument","): 메서드를 호출할 때 실제로 전달하는 값",[200,1246,1249],{"className":1247,"code":1248,"language":361,"meta":205},[359],"메서드 선언: add(int a, int b)\n                    ▲       ▲\n                 매개변수  매개변수\n\n메서드 호출: add(10, 20)\n                 ▲   ▲\n                인자 인자\n",[18,1250,1248],{"__ignoreMap":205},[52,1252,1254],{"id":1253},"_10-오버로딩overloading","10. 오버로딩(Overloading)",[14,1256,1257,1258,1091],{},"오버로딩은 같은 클래스 안에서 ",[729,1259,1260],{},"같은 이름의 메서드를 매개변수 목록을 다르게 하여 여러 개 정의하는 것",[200,1262,1264],{"className":202,"code":1263,"language":204,"meta":205,"style":205},"public class StockUtils {\n    public void printStockPrice(String stockName, double price) {\n        System.out.println(stockName + \" : \" + price);\n    }\n\n    public void printStockPrice(String stockName) {\n        System.out.println(\"종목명: \" + stockName);\n    }\n}\n",[18,1265,1266,1271,1276,1281,1285,1289,1294,1299,1303],{"__ignoreMap":205},[209,1267,1268],{"class":211,"line":212},[209,1269,1270],{},"public class StockUtils {\n",[209,1272,1273],{"class":211,"line":269},[209,1274,1275],{},"    public void printStockPrice(String stockName, double price) {\n",[209,1277,1278],{"class":211,"line":275},[209,1279,1280],{},"        System.out.println(stockName + \" : \" + price);\n",[209,1282,1283],{"class":211,"line":281},[209,1284,303],{},[209,1286,1287],{"class":211,"line":288},[209,1288,285],{"emptyLinePlaceholder":284},[209,1290,1291],{"class":211,"line":294},[209,1292,1293],{},"    public void printStockPrice(String stockName) {\n",[209,1295,1296],{"class":211,"line":300},[209,1297,1298],{},"        System.out.println(\"종목명: \" + stockName);\n",[209,1300,1301],{"class":211,"line":306},[209,1302,303],{},[209,1304,1305],{"class":211,"line":672},[209,1306,309],{},[200,1308,1310],{"className":202,"code":1309,"language":204,"meta":205,"style":205},"StockUtils utils = new StockUtils();\nutils.printStockPrice(\"SKALA\", 17000); \u002F\u002F 두 매개변수 메서드 호출\nutils.printStockPrice(\"SKALA\");        \u002F\u002F 한 매개변수 메서드 호출\n",[18,1311,1312,1317,1322],{"__ignoreMap":205},[209,1313,1314],{"class":211,"line":212},[209,1315,1316],{},"StockUtils utils = new StockUtils();\n",[209,1318,1319],{"class":211,"line":269},[209,1320,1321],{},"utils.printStockPrice(\"SKALA\", 17000); \u002F\u002F 두 매개변수 메서드 호출\n",[209,1323,1324],{"class":211,"line":275},[209,1325,1326],{},"utils.printStockPrice(\"SKALA\");        \u002F\u002F 한 매개변수 메서드 호출\n",[14,1328,1329],{},"반환형만 다르게 해서는 오버로딩할 수 없다.",[200,1331,1333],{"className":202,"code":1332,"language":204,"meta":205,"style":205},"\u002F\u002F 매개변수 목록이 같으므로 오버로딩 불가\nint getValue() { return 1; }\ndouble getValue() { return 1.0; }\n",[18,1334,1335,1340,1345],{"__ignoreMap":205},[209,1336,1337],{"class":211,"line":212},[209,1338,1339],{},"\u002F\u002F 매개변수 목록이 같으므로 오버로딩 불가\n",[209,1341,1342],{"class":211,"line":269},[209,1343,1344],{},"int getValue() { return 1; }\n",[209,1346,1347],{"class":211,"line":275},[209,1348,1349],{},"double getValue() { return 1.0; }\n",[52,1351,1353,1354,1356],{"id":1352},"_11-static-클래스에-소속된-멤버","11. ",[18,1355,509],{},": 클래스에 소속된 멤버",[179,1358,421],{"id":1359},"정의-5",[14,1361,1362,1364,1365,1368],{},[18,1363,509],{},"은 필드나 메서드를 특정 객체가 아니라 ",[729,1366,1367],{},"클래스에 소속시키는 키워드","다. 객체를 여러 개 만들어도 static 필드는 클래스에 하나만 존재하고 공유된다.",[200,1370,1372],{"className":202,"code":1371,"language":204,"meta":205,"style":205},"public class Example {\n    private static int count = 0;\n    private int instanceId;\n\n    public Example() {\n        count++;\n        instanceId = count;\n    }\n\n    public static int getCount() {\n        return count;\n    }\n\n    public int getInstanceId() {\n        return instanceId;\n    }\n}\n",[18,1373,1374,1379,1384,1389,1393,1398,1403,1408,1412,1416,1421,1426,1430,1434,1439,1444,1448],{"__ignoreMap":205},[209,1375,1376],{"class":211,"line":212},[209,1377,1378],{},"public class Example {\n",[209,1380,1381],{"class":211,"line":269},[209,1382,1383],{},"    private static int count = 0;\n",[209,1385,1386],{"class":211,"line":275},[209,1387,1388],{},"    private int instanceId;\n",[209,1390,1391],{"class":211,"line":281},[209,1392,285],{"emptyLinePlaceholder":284},[209,1394,1395],{"class":211,"line":288},[209,1396,1397],{},"    public Example() {\n",[209,1399,1400],{"class":211,"line":294},[209,1401,1402],{},"        count++;\n",[209,1404,1405],{"class":211,"line":300},[209,1406,1407],{},"        instanceId = count;\n",[209,1409,1410],{"class":211,"line":306},[209,1411,303],{},[209,1413,1414],{"class":211,"line":672},[209,1415,285],{"emptyLinePlaceholder":284},[209,1417,1418],{"class":211,"line":879},[209,1419,1420],{},"    public static int getCount() {\n",[209,1422,1423],{"class":211,"line":885},[209,1424,1425],{},"        return count;\n",[209,1427,1428],{"class":211,"line":890},[209,1429,303],{},[209,1431,1432],{"class":211,"line":896},[209,1433,285],{"emptyLinePlaceholder":284},[209,1435,1436],{"class":211,"line":902},[209,1437,1438],{},"    public int getInstanceId() {\n",[209,1440,1441],{"class":211,"line":907},[209,1442,1443],{},"        return instanceId;\n",[209,1445,1446],{"class":211,"line":912},[209,1447,303],{},[209,1449,1451],{"class":211,"line":1450},17,[209,1452,309],{},[200,1454,1456],{"className":202,"code":1455,"language":204,"meta":205,"style":205},"Example e1 = new Example();\nExample e2 = new Example();\nExample e3 = new Example();\n\nSystem.out.println(Example.getCount());  \u002F\u002F 3\nSystem.out.println(e1.getInstanceId()); \u002F\u002F 1\nSystem.out.println(e2.getInstanceId()); \u002F\u002F 2\nSystem.out.println(e3.getInstanceId()); \u002F\u002F 3\n",[18,1457,1458,1463,1468,1473,1477,1482,1487,1492],{"__ignoreMap":205},[209,1459,1460],{"class":211,"line":212},[209,1461,1462],{},"Example e1 = new Example();\n",[209,1464,1465],{"class":211,"line":269},[209,1466,1467],{},"Example e2 = new Example();\n",[209,1469,1470],{"class":211,"line":275},[209,1471,1472],{},"Example e3 = new Example();\n",[209,1474,1475],{"class":211,"line":281},[209,1476,285],{"emptyLinePlaceholder":284},[209,1478,1479],{"class":211,"line":288},[209,1480,1481],{},"System.out.println(Example.getCount());  \u002F\u002F 3\n",[209,1483,1484],{"class":211,"line":294},[209,1485,1486],{},"System.out.println(e1.getInstanceId()); \u002F\u002F 1\n",[209,1488,1489],{"class":211,"line":300},[209,1490,1491],{},"System.out.println(e2.getInstanceId()); \u002F\u002F 2\n",[209,1493,1494],{"class":211,"line":306},[209,1495,1496],{},"System.out.println(e3.getInstanceId()); \u002F\u002F 3\n",[179,1498,1500],{"id":1499},"static과-인스턴스-멤버-비교","static과 인스턴스 멤버 비교",[57,1502,1503,1516],{},[60,1504,1505],{},[63,1506,1507,1510,1513],{},[66,1508,1509],{},"구분",[66,1511,1512],{},"static 멤버",[66,1514,1515],{},"인스턴스 멤버",[76,1517,1518,1528,1539,1554,1565],{},[63,1519,1520,1523,1525],{},[81,1521,1522],{},"소속",[81,1524,20],{},[81,1526,1527],{},"각각의 객체",[63,1529,1530,1533,1536],{},[81,1531,1532],{},"생성 개수",[81,1534,1535],{},"클래스에 하나",[81,1537,1538],{},"객체마다 하나",[63,1540,1541,1544,1549],{},[81,1542,1543],{},"호출 방법",[81,1545,1546],{},[18,1547,1548],{},"Example.getCount()",[81,1550,1551],{},[18,1552,1553],{},"e1.getInstanceId()",[63,1555,1556,1559,1562],{},[81,1557,1558],{},"객체 생성 필요",[81,1560,1561],{},"static 메서드는 보통 필요 없음",[81,1563,1564],{},"필요함",[63,1566,1567,1570,1572],{},[81,1568,1569],{},"직접 접근 가능한 값",[81,1571,1512],{},[81,1573,1574],{},"static, 인스턴스 멤버",[14,1576,1577],{},"static 메서드는 특정 객체가 없을 수 있으므로 인스턴스 필드에 직접 접근할 수 없다.",[200,1579,1581],{"className":202,"code":1580,"language":204,"meta":205,"style":205},"class Example {\n    private int instanceValue;\n    private static int classValue;\n\n    static void print() {\n        \u002F\u002F System.out.println(instanceValue); \u002F\u002F 오류\n        System.out.println(classValue);       \u002F\u002F 가능\n    }\n}\n",[18,1582,1583,1588,1593,1598,1602,1607,1615,1620,1624],{"__ignoreMap":205},[209,1584,1585],{"class":211,"line":212},[209,1586,1587],{},"class Example {\n",[209,1589,1590],{"class":211,"line":269},[209,1591,1592],{},"    private int instanceValue;\n",[209,1594,1595],{"class":211,"line":275},[209,1596,1597],{},"    private static int classValue;\n",[209,1599,1600],{"class":211,"line":281},[209,1601,285],{"emptyLinePlaceholder":284},[209,1603,1604],{"class":211,"line":288},[209,1605,1606],{},"    static void print() {\n",[209,1608,1609,1612],{"class":211,"line":294},[209,1610,1611],{},"        \u002F\u002F System.out.println(instanceValue);",[209,1613,1614],{}," \u002F\u002F 오류\n",[209,1616,1617],{"class":211,"line":300},[209,1618,1619],{},"        System.out.println(classValue);       \u002F\u002F 가능\n",[209,1621,1622],{"class":211,"line":306},[209,1623,303],{},[209,1625,1626],{"class":211,"line":672},[209,1627,309],{},[52,1629,1631],{"id":1630},"_12-전체-예제","12. 전체 예제",[200,1633,1635],{"className":202,"code":1634,"language":204,"meta":205,"style":205},"public class Stock {\n    private final String name;\n    private double price;\n    private static int count;\n\n    public Stock(String name, double price) {\n        this.name = name;\n        this.price = price;\n        count++;\n    }\n\n    public void updatePrice(double newPrice) {\n        this.price = newPrice;\n    }\n\n    public void printInfo() {\n        System.out.println(name + \" : \" + price + \"원\");\n    }\n\n    public static int getCount() {\n        return count;\n    }\n}\n",[18,1636,1637,1641,1646,1650,1655,1659,1663,1667,1671,1675,1679,1683,1688,1693,1697,1701,1706,1711,1716,1721,1726,1731,1736],{"__ignoreMap":205},[209,1638,1639],{"class":211,"line":212},[209,1640,266],{},[209,1642,1643],{"class":211,"line":269},[209,1644,1645],{},"    private final String name;\n",[209,1647,1648],{"class":211,"line":275},[209,1649,882],{},[209,1651,1652],{"class":211,"line":281},[209,1653,1654],{},"    private static int count;\n",[209,1656,1657],{"class":211,"line":288},[209,1658,285],{"emptyLinePlaceholder":284},[209,1660,1661],{"class":211,"line":294},[209,1662,655],{},[209,1664,1665],{"class":211,"line":300},[209,1666,660],{},[209,1668,1669],{"class":211,"line":306},[209,1670,665],{},[209,1672,1673],{"class":211,"line":672},[209,1674,1402],{},[209,1676,1677],{"class":211,"line":879},[209,1678,303],{},[209,1680,1681],{"class":211,"line":885},[209,1682,285],{"emptyLinePlaceholder":284},[209,1684,1685],{"class":211,"line":890},[209,1686,1687],{},"    public void updatePrice(double newPrice) {\n",[209,1689,1690],{"class":211,"line":896},[209,1691,1692],{},"        this.price = newPrice;\n",[209,1694,1695],{"class":211,"line":902},[209,1696,303],{},[209,1698,1699],{"class":211,"line":907},[209,1700,285],{"emptyLinePlaceholder":284},[209,1702,1703],{"class":211,"line":912},[209,1704,1705],{},"    public void printInfo() {\n",[209,1707,1708],{"class":211,"line":1450},[209,1709,1710],{},"        System.out.println(name + \" : \" + price + \"원\");\n",[209,1712,1714],{"class":211,"line":1713},18,[209,1715,303],{},[209,1717,1719],{"class":211,"line":1718},19,[209,1720,285],{"emptyLinePlaceholder":284},[209,1722,1724],{"class":211,"line":1723},20,[209,1725,1420],{},[209,1727,1729],{"class":211,"line":1728},21,[209,1730,1425],{},[209,1732,1734],{"class":211,"line":1733},22,[209,1735,303],{},[209,1737,1739],{"class":211,"line":1738},23,[209,1740,309],{},[200,1742,1744],{"className":202,"code":1743,"language":204,"meta":205,"style":205},"public class Main {\n    public static void main(String[] args) {\n        Stock scalaEdu = new Stock(\"스칼라 에듀\", 15000);\n        Stock scalaAi = new Stock(\"스칼라 AI\", 17500);\n\n        scalaEdu.updatePrice(15800);\n        scalaEdu.printInfo();\n        System.out.println(\"생성된 Stock 객체 수: \" + Stock.getCount());\n    }\n}\n",[18,1745,1746,1751,1756,1761,1766,1770,1775,1780,1785,1789],{"__ignoreMap":205},[209,1747,1748],{"class":211,"line":212},[209,1749,1750],{},"public class Main {\n",[209,1752,1753],{"class":211,"line":269},[209,1754,1755],{},"    public static void main(String[] args) {\n",[209,1757,1758],{"class":211,"line":275},[209,1759,1760],{},"        Stock scalaEdu = new Stock(\"스칼라 에듀\", 15000);\n",[209,1762,1763],{"class":211,"line":281},[209,1764,1765],{},"        Stock scalaAi = new Stock(\"스칼라 AI\", 17500);\n",[209,1767,1768],{"class":211,"line":288},[209,1769,285],{"emptyLinePlaceholder":284},[209,1771,1772],{"class":211,"line":294},[209,1773,1774],{},"        scalaEdu.updatePrice(15800);\n",[209,1776,1777],{"class":211,"line":300},[209,1778,1779],{},"        scalaEdu.printInfo();\n",[209,1781,1782],{"class":211,"line":306},[209,1783,1784],{},"        System.out.println(\"생성된 Stock 객체 수: \" + Stock.getCount());\n",[209,1786,1787],{"class":211,"line":672},[209,1788,303],{},[209,1790,1791],{"class":211,"line":879},[209,1792,309],{},[14,1794,1795],{},"이 예제에서 확인할 수 있는 내용은 다음과 같다.",[187,1797,1798,1803,1812,1817,1824,1830,1838,1846],{},[42,1799,1800,1802],{},[18,1801,227],{},": 객체를 만들기 위한 클래스",[42,1804,1805,21,1808,1811],{},[18,1806,1807],{},"scalaEdu",[18,1809,1810],{},"scalaAi",": Stock 객체를 가리키는 참조 변수",[42,1813,1814,1816],{},[18,1815,220],{},": Stock 인스턴스 생성",[42,1818,1819,21,1821,1823],{},[18,1820,319],{},[18,1822,322],{},": 객체의 상태를 저장하는 필드",[42,1825,1826,1829],{},[18,1827,1828],{},"Stock(...)",": 객체를 초기화하는 생성자",[42,1831,1832,21,1835,1837],{},[18,1833,1834],{},"updatePrice()",[18,1836,328],{},": 객체의 동작을 정의한 인스턴스 메서드",[42,1839,1840,21,1842,1845],{},[18,1841,536],{},[18,1843,1844],{},"getCount()",": Stock 클래스 전체가 공유하는 static 멤버",[42,1847,1848,21,1850,1853],{},[18,1849,774],{},[18,1851,1852],{},"this.price",": 현재 생성 중인 객체의 필드",[52,1855,1857],{"id":1856},"_13-최종-정리","13. 최종 정리",[200,1859,1862],{"className":1860,"code":1861,"language":361,"meta":205},[359],"클래스(Class)\n  └─ 객체를 만들기 위한 설계도\n       ├─ 필드(Field): 상태를 저장하는 변수\n       ├─ 메서드(Method): 동작을 정의하는 코드\n       └─ 생성자(Constructor): 객체 생성 시 초기화\n\nnew Stock(...)\n  └─ Stock 클래스의 인스턴스인 객체 생성\n       ├─ 인스턴스 필드: 객체마다 별도 보유\n       ├─ static 필드: 클래스 전체가 공유\n       └─ 참조 변수: 객체를 가리키는 참조값 보유\n",[18,1863,1861],{"__ignoreMap":205},[187,1865,1866,1869,1872,1875,1878,1883,1891],{},[42,1867,1868],{},"클래스는 설계도이고, 객체는 설계도로 만든 실행 중인 실체다.",[42,1870,1871],{},"인스턴스는 “특정 클래스에서 만들어진 객체”라는 관계를 나타낸다.",[42,1873,1874],{},"필드는 상태, 메서드는 동작, 생성자는 초기화를 담당한다.",[42,1876,1877],{},"매개변수는 메서드 선언부의 변수이고, 인자는 호출할 때 전달하는 실제 값이다.",[42,1879,1880,1882],{},[18,1881,623],{},"는 반환값이 없다는 뜻이다.",[42,1884,1885,1887,1888,1890],{},[18,1886,718],{},"는 현재 객체를 가리키고, ",[18,1889,822],{},"는 부모 클래스 부분에 접근한다.",[42,1892,1893,1895],{},[18,1894,509],{}," 멤버는 객체가 아니라 클래스에 소속되어 공유된다.",[1897,1898,1899],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":205,"searchDepth":269,"depth":269,"links":1901},[1902],{"id":12,"depth":269,"text":5,"children":1903},[1904,1905,1906,1907,1908,1909,1911,1913,1914,1915,1916,1918,1919],{"id":54,"depth":275,"text":55},{"id":252,"depth":275,"text":253},{"id":342,"depth":275,"text":343},{"id":417,"depth":275,"text":418},{"id":599,"depth":275,"text":600},{"id":714,"depth":275,"text":1910},"6. this: 현재 객체를 가리키는 참조",{"id":818,"depth":275,"text":1912},"7. super: 부모 클래스에 접근하는 키워드",{"id":938,"depth":275,"text":939},{"id":1196,"depth":275,"text":1197},{"id":1253,"depth":275,"text":1254},{"id":1352,"depth":275,"text":1917},"11. static: 클래스에 소속된 멤버",{"id":1630,"depth":275,"text":1631},{"id":1856,"depth":275,"text":1857},[204,1921],"oop","2026-08-10 11:00:00 +0900","클래스, 객체, 인스턴스부터 필드, 메서드, 생성자, this, super, static까지 기본 문법을 정리한다.","md",null,"\u002Fjava\u002Foop\u002F2026\u002F08\u002F10\u002Fjava-class-object\u002F",{"layout":1928},"post","1","\u002Fposts\u002Fbackend\u002Fjava\u002Foop\u002F2026-08-10-java-class-object",{"title":5,"description":1923},"Java 객체지향","posts\u002FBackend\u002FJAVA\u002Foop\u002F2026-08-10-java-class-object",[1935,86,101,115,129,143,157,1936,1937,1938],"Java","This","Super","Static","M6oJEA-NKtTp8-LxNDJSGUhdSrNF9_Uv6I_mhEVByd4",1788744784895]