[問題] AAR 存取 class 問題

作者: kuangs (kuangs)   2018-03-05 18:51:36
目前碰到一個問題,我想包一個AAR檔讓其他APP使用,
希望APP使用的方法類似這樣:AARClass.music.turnOff
但是我希望music這個class或是turnOff,不要被外部直接使用,
一定要透過AARClass才能存取,我試了幾個方法都無法做到,
程式碼類似如下:
public class MainActivity extends AppCompatActivity {
public onCreate (){
AARClass class = new AARClass();
class.music.turnOf;
}
}
==========AAR==================
public AARClass(){
public Music music = new Music();
public Music(){ <
作者: aids61517 (奇歐巴肯)   2018-03-05 19:28:00
為什麼Music物件要設定成public?不透過個function去控制它嗎?像是在AARClass新增一個function turnOff()實作內容是music.turnOff(),這樣子做會違背你原本的目的嗎@@?
作者: ssccg (23)   2018-03-05 20:19:00
這是很單純的物件導向程式設計問題...
作者: kuangs (kuangs)   2018-03-05 20:21:00
不會,但是如果功能變多,每個都要用function去控,程式碼感覺會變的很亂還有AARClass 跟 music 這兩個class 是在不同的package@ssccg 大 小弟之前是寫c的,物件導向還在努力惡補中
作者: kobe8112 (小B)   2018-03-05 20:25:00
隨便找一本物件導向的書,翻開繼承的章節,通常會有很多例子,告訴你應該怎麼依據目的決定成員/函式存取範圍
作者: y3k (激流を制するは静水)   2018-03-05 22:06:00
上網去找JAVA教學也行 你目前連跨class都不太清楚 就先別跨模組 先把class弄清楚吧?
作者: erty0402 (缺副駕駛)   2018-03-06 01:43:00
感覺你的music class不用public出來,內部使用就可以了,外部public api就好
作者: MOONY135 (談無慾)   2018-03-06 23:17:00
MUSIC CLASS用隱式 然後給外面一個公開的function去控制就可以了吧 如果是自己用那沒差給別人用那可能會有問題

Links booklink

Contact Us: admin [ a t ] ucptt.com