Кластардағы бұл кілт сөз

Мен Java үйреніп жатырмын және құжаттаманы орындаймын.

осы бетке Мен түсінбеймін -

...   Сондай-ақ, класс әдістері осы кілт сөзді пайдалана алмайды, себебі сілтеме жасайтын ешқандай мысал жоқ.   ...

Мен бұл this кілт сөзін пайдалана алмайтын статикалық класс әдісі деп ойладым.

Мұны тексеру үшін мен келесі композицияларды жаздым.

import java.math.*;

class Point {

    public int x, y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public double getDistanceFromOrigin() {
        return Math.sqrt(this.x*this.x + this.y*this.y);
    }

}

Менде бұл әдіс this дегенді білдіреді.

Мен қандай да бір нәрселерді дұрыс түсінбеймін бе?

1
Сіздің әдістеріңіз статикалық емес, сондықтан олар this -қа қол жеткізе алады.
қосылды автор rgettman, көзі
Сіздің әдістеріңіз статикалық емес, сондықтан олар this -қа қол жеткізе алады.
қосылды автор rgettman, көзі
Мен this кілт сөзін пайдалана алмайтын static сынып әдістерін деп ойладым. және сіз дұрыссыз.
қосылды автор Luiggi Mendoza, көзі
Мен this кілт сөзін пайдалана алмайтын static сынып әдістерін деп ойладым. және сіз дұрыссыз.
қосылды автор Luiggi Mendoza, көзі
class method -> classs level method -> static methods-> сіз оны күшіне енгізбейсіз пайдалануға болады, сондықтан олар статикалық болып табылады, сондықтан сіз осы клавиатураны пайдалана алмайсыз, себебі сізде осы сыныптан нысан бар.
қосылды автор nachokk, көзі
сіздің байланысыңыз бұзылған
қосылды автор Sam I am, көзі
сіздің байланысыңыз бұзылған
қосылды автор Sam I am, көзі
Менің ойымша, сіз «класс әдістері» шын мәнінде статикалық әдістер болып табылады, себебі олар данаға емес, сыныпқа қолданылады.
қосылды автор Vulcan, көзі
сілтемеңізді түзетіңіз (үтірді кейін .html-дан алып тастаңыз)
қосылды автор Russell Uhl, көзі
қосылды автор xylon97, көзі

9 жауаптар

Класс әдісі статикалық әдістер. «Сынып әдісі» дегеніміз - сіз жасаған нысандарға қоңырау шала алатын етіп нысан/данасы әдістеріне қарағанда, сынып анықтамасына ( static осы сыныпқа негізделген.

Сіз жазған кодтың екі нысан/данасы әдісі бар және ешқандай сыныб әдісі жоқ. Егер сіз Java-де сынып әдісін қаласаңыз, оны статикалық етіп жасайсыз, содан кейін this функциясын пайдалана алмайсыз.

5
қосылды
ahh .. рахмет. Қазір мен түсінемін.
қосылды автор xylon97, көзі

Класс әдісі статикалық әдістер. «Сынып әдісі» дегеніміз - сіз жасаған нысандарға қоңырау шала алатын етіп нысан/данасы әдістеріне қарағанда, сынып анықтамасына ( static осы сыныпқа негізделген.

Сіз жазған кодтың екі нысан/данасы әдісі бар және ешқандай сыныб әдісі жоқ. Егер сіз Java-де сынып әдісін қаласаңыз, оны статикалық етіп жасайсыз, содан кейін this функциясын пайдалана алмайсыз.

5
қосылды
ahh .. рахмет. Қазір мен түсінемін.
қосылды автор xylon97, көзі

this қолданыстағы данаға сілтеме жасайтын даналық әдісінде пайдаланасыз.

public double getDistanceFromOrigin() {
    return Math.sqrt(this.x*this.x + this.y*this.y);
}

Егер әдісті статикалық әдіске ауыстырсаңыз, this параметрі қол жетімді болмайды, себебі статикалық әдістер сыныптың белгілі бір данасына емес, this дегенді білдіреді егер әдіс қолданылса, сыныптың ағымдағы данасына дейін.

public static double getDistanceFromOrigin() {
    return Math.sqrt(this.x*this.x + this.y*this.y);//compilation error here
}
1
қосылды

Сіз дұрыс болсаңыз, тек static класс әдістерін this кілт сөзін қолдануға болмайды, бірақ сіздің код үлгісі статистикалық емес, сондықтан this дұрыс әрекет етеді.

1
қосылды

Сіз дұрыс болсаңыз, тек static класс әдістерін this кілт сөзін қолдануға болмайды, бірақ сіздің код үлгісі статистикалық емес, сондықтан this дұрыс әрекет етеді.

1
қосылды

Мен бұл this кілт сөзін пайдалана алмайтын static әдісінің әдісі деп ойладым.

Сіздікі жөн. Сыныптағы static әдісі нысан сілтемесіне емес, сыныпқа жатады. Сонымен, сөйлемді дәлелдеу үшін static әдісін қосыңыз және оған this кілт сөзін пайдаланыңыз. Мысалға:

class Point {

    public int x, y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public double getDistanceFromOrigin() {
        return Math.sqrt(this.x*this.x + this.y*this.y);
    }

    public static double getDistanceBetweenPoints(Point point1, Point point2) {
        //uncomment and it won't compile
        //double result = this.x;
        //fancy implementation...
        return 0;
    }

}
1
қосылды

Мен бұл this кілт сөзін пайдалана алмайтын static әдісінің әдісі деп ойладым.

Сіздікі жөн. Сыныптағы static әдісі нысан сілтемесіне емес, сыныпқа жатады. Сонымен, сөйлемді дәлелдеу үшін static әдісін қосыңыз және оған this кілт сөзін пайдаланыңыз. Мысалға:

class Point {

    public int x, y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public double getDistanceFromOrigin() {
        return Math.sqrt(this.x*this.x + this.y*this.y);
    }

    public static double getDistanceBetweenPoints(Point point1, Point point2) {
        //uncomment and it won't compile
        //double result = this.x;
        //fancy implementation...
        return 0;
    }

}
1
қосылды

Сіз жіберген сілтеме бойынша мазмұнды оқығаннан кейін static әдістеріне сілтеме жасау үшін Class methods


Сынып әдістері

     

Java бағдарламалау тілі де статикалық әдістерді қолдайды   статикалық айнымалылар. Статикалық түрлендіргіші бар статикалық әдістер   олардың декларацияларын сынып атауымен шақыруға болмайды   

секілді кластың данасын жасау қажеттілігі

Статикалық әдістерде this функциясын қолдана алмайсыз, себебі сілтеме жоқ (ешқандай this ).

1
қосылды

Сіз жіберген сілтеме бойынша мазмұнды оқығаннан кейін static әдістеріне сілтеме жасау үшін Class methods


Сынып әдістері

     

Java бағдарламалау тілі де статикалық әдістерді қолдайды   статикалық айнымалылар. Статикалық түрлендіргіші бар статикалық әдістер   олардың декларацияларын сынып атауымен шақыруға болмайды   

секілді кластың данасын жасау қажеттілігі

Статикалық әдістерде this функциясын қолдана алмайсыз, себебі сілтеме жоқ (ешқандай this ).

1
қосылды