Sobes.tech
Junior — Middle

Оё синфи дар Java дари барои дастрасӣ аз дигар синфҳо маҳкам аст?

sobes.tech AI

Ҷавоб аз AI

Дарунсози дар Java ҳатман бояд махфӣ бошад, то ки аз дигар синфҳо дастрас бошад. Дастрасӣ ба дарунсози вобаста аст аз модификатори дастрасӣ, ки ба он таъин шудааст (private, protected, public ё package-private). Масалан, агар дарунсози ҳамчун private эълон карда шавад, танҳо дар дохили синфи берунии он дастрас аст. Агар ҳамчун public ё бе модификатор (package-private) эълон карда шавад, он инчунин аз дигар синфҳо дар ҳамон баста ё тавассути воридот дастрас аст.

Масалан:

public class Outer {
    private class InnerPrivate {}
    public class InnerPublic {}
}

// Аз синфи дигар дар ҳамон баста:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // иҷозат дода шудааст
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // хато дар компилятсия