Java

M

Mr.InF3ction

Гостин
Проблемот е поврзан со Nested Classes односно со креирањето на објект од static Inner или само inner објект. Ако може некој да ми ги објасни овие два реда код
Код:
OuterClass.StaticNestedClass nestedObject =
    [B]new OuterClass.StaticNestedClass();[/B]
и
Код:
OuterClass.InnerClass innerObject =outerObject.new InnerClass();
Ме збунува креирањето на објектите од статичната внатрешна класа и од обичната
Во принцип е многу проста работа но многу лесно може да збуни...
Да предпоставам дека не знаеш што е static и да објаснам што е : Кратко јасно знаеш дека во јава се е со класи и затоа ако пред некоја променлива, функција,класа стои static тоа значи дека таа променлива, функција или класа постои и може да се повика-користи без да постои објект од таа класа каде што се наоѓа таа променлвиа, функција или класа, исто така истите вредности што ги има таа променлива, функција или класа важи за сите направени објекти од таа класа.

Е сега тука е момент што значи дека внатрешната static класа ние може да ја користиме без да постои надворешната главна класа. И затоа ни е дозволено ова:
Код:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
Се пишува OutterClass.StaticNestedClass бидејќи внатрешната класа физички е внатре во OutterClass па тоа некако како патека кажува каде се наоѓа...нека не те буни.


А сега за внатрешните класи кои што не се static важи и истото правило како и за сите други променливи, функции,..а тоа правило е дека постојат и можат да се користат само ако постои објект од надворешната класа. глуп пр:
Код:
    public class nekojaKlasa{
  public int x;
}
Ја од некоја main функција не можам туку така да напишам nekojaKlasa.x и да пристапам до таа променлива затоа што таа променлвиа ќе постои само ако претходно имам крериано објект од таа класа : nekojaKlasa obj = new nekojaKlasa();..потоа можам obj.x

Истото е и со внатрешната класа, прво морам да направам објект од надворешната класа:
Код:
OuterClass outerObject = new OuterClass ();
За потоа преку објект од надворешната класа да можам да пристапам во внатрешната класа и да направам објект од тоа( :icon_lol: )
Код:
OuterClass.InnerClass innerObject =outerObject.new InnerClass();
Се надевам малце појасно е :icon_lol:


Despod

Предпоставув дека веќе знаеш тоа...секој счучај alt+enter на тој ред кај што јавува "грешка" ќе даде предлог за решение... или ctrl+shift+i да импортира се што треба :)
 
  • Ми се допаѓа
Reactions: Tan
Член од
25 март 2012
Мислења
40
Поени од реакции
6
За static појасно ми е само оти кај овие non static се креира објект вака : outerObject.new InnerClass();
а не можи:
new outerObject.InnerClass()
и фала за одговорот...
 
M

Mr.InF3ction

Гостин
Па бидјејќи објектот што се креира е внатре во надворешниот објект...малце чудно е но таква е синтаксата... за да се знае дека е внатрешна класа..
 
Член од
24 април 2012
Мислења
11
Поени од реакции
0
Има ли некој предлог за семинарска или готов код, ми треба за на факс. До сега имаме изучено наследување на класи, имплементација, гетери и сетери,конструктори,колекции,итерација,множества,врапер класи,абстрактни класи, интерфејс,исклучоци,стримови,xml датотека.
Не го разбирам јава програмскиот јазик, почетник сум, затоа барам помош.
 

Рунчев

Esi mi dobaaar
Член од
29 мај 2007
Мислења
1.262
Поени од реакции
190
Има ли некој предлог за семинарска или готов код, ми треба за на факс. До сега имаме изучено наследување на класи, имплементација, гетери и сетери,конструктори,колекции,итерација,множества,врапер класи,абстрактни класи, интерфејс,исклучоци,стримови,xml датотека.
Не го разбирам јава програмскиот јазик, почетник сум, затоа барам помош.
Па ти како што наброја, цел предмет сте го поминале. Сето ова што го наброја е доволно да се направи една, да не речам солидна апликација :) Ако од ова поминатот ти незнаеш ништо едноставно откажи се земи ливчиња и препишувај. А во најдобар случај земи материјал и почни да учиш баш како што ти се подредени почнувајќи од објекти класи... па до стримови датотеки xml.
Пробај нешто почни се надевам каде ќе застанеш има овде солидни луѓе ќе ти помогнат.
Не сваќај дека ти солам памет и се правам паметен и голем програмер, ова ти е за твое добро. Размисли си ти па ако одлучиш, дека немаш желба да учиш барај ме преку ПП ќе ти пратам.

За идеа: Направи некоја апликација пр.Каталог за за коли. Да овозможува внесување на тип на кола и перформанси за колата, да ги запишува во xml и txt, да има можност да ги прочита од фајлот и да ги испечати на конзолата :) Во ова задача би требало да ѓи опфатиш сите точки што сте ги поминале :)
 

Рунчев

Esi mi dobaaar
Член од
29 мај 2007
Мислења
1.262
Поени од реакции
190
Код:
File file = new File("pateka");
BufferedReader br = new BufferedReader(new FileReader(file));
String contenet, line;
while((line=br.readLine())!=null){
content +=line;
}
return content;
Помош некој зашо цело време ми враќа null, пробав и со StringBuffer и append на линиите, но никако не можам да го земам целиот текст од еден фајл,
 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
Код:
File file = new File("pateka");
BufferedReader br = new BufferedReader(new FileReader(file));
String contenet, line;
while((line=br.readLine())!=null){
content +=line;
}
return content;
Помош некој зашо цело време ми враќа null, пробав и со StringBuffer и append на линиите, но никако не можам да го земам целиот текст од еден фајл,
Код:
File file = new File("pateka");
BufferedReader br = new BufferedReader(new FileReader(file));
String content = new String(), line;
while((line=br.readLine())!=null){
content +=line;
}
return content;
Кога имаш String content = null; и кога правиш додавање на нови стрингови врз истиот, поради тоа што Стринг класата е immutable, null не се заменува со новата содржина, туку новата содржина се додава на постоечката (во случајов нулл) и се формира нов стринг. Поради тоа, а и поради тоа што операцијата + при формирање стрингови е бавна операција (баш поради тоа што при секоја конкатенација се формира комплетно нов стринг заради имутабилноста на Стринг) + операцијата кај стрингови не се препорачува, користи ја StringBuilder класата наместо тоа.
Нешто вака
Код:
        File file = new File("pateka");     
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line = br.readLine()) != null) {
            sb.append(line);
            sb.append("\n");
        }     
        return sb.toString();
    }
 
Член од
8 октомври 2011
Мислења
65
Поени од реакции
47
Зошто кога декларирам низа во Netbeans на следниот начин int array[] = new int[100]; ја дава следната грешка the array is only written to never read from ?
 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
M

Mr.InF3ction

Гостин
Не е грешка, туку се прави многу паметен за да не трошиш меморија за џабе...:icon_lol:
 

bogev4eboy

Хејтер
Член од
6 март 2011
Мислења
382
Поени од реакции
180
Случајно некој да не има Eclipse Indigo?
Доколку има и сака може да го сподели ...
Благодарам
 
Член од
8 октомври 2011
Мислења
65
Поени од реакции
47
Дали некој има завршено некој курс за Java во Семос и притоа има полагано за сертификат да сподели искуства и да каже дали вреди за толку пари да се посетува курсот во семос

Sent from my Samsung Galaxy S3 using Tapatalk 2
 

OMGWTFBBQ

Bone for Tuna
Член од
3 февруари 2007
Мислења
8.802
Поени од реакции
4.419
Прелистав 2-3 страни и не видов некој да го имал мојов проблем. Значи кога правам run (користам Eclipse for JAVA), се си е ок со кодот но доле кај конзолата не ми го дава резултатот од програмата туку ми јавува Error: Could not find or load main class "името на фајлот/класата”. Чаре?
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Прелистав 2-3 страни и не видов некој да го имал мојов проблем. Значи кога правам run (користам Eclipse for JAVA), се си е ок со кодот но доле кај конзолата не ми го дава резултатот од програмата туку ми јавува Error: Could not find or load main class "името на фајлот/класата”. Чаре?
Или немаш метода мејн или не ти е добро напишана.
Треба да гласи вака
Код:
public class ABC {
    public static void main(String[] args) {
    }
}
 

Kajgana Shop

На врв Bottom