Presentation is loading. Please wait.

Presentation is loading. Please wait.

More Java: Encapsulation, Getters, Setters, Anonymous Class 1 CS300.

Similar presentations


Presentation on theme: "More Java: Encapsulation, Getters, Setters, Anonymous Class 1 CS300."— Presentation transcript:

1 More Java: Encapsulation, Getters, Setters, Anonymous Class 1 CS300

2 Java Packages  Provide a mechanism for grouping related types together in a universally unique namespace.  java.lang  Java.util  How to name a package?  Domain name reversed Ex. domain android.com will be package com.android  Plus name of the program Ex. com.android.notepad CS300 2

3 Access Modifiers  Keywords that modify the visibility of the declarations to which they are applied  Private: most restrictive. Not visible outside the block that contains it.  Default or package access: next most restrictive. Visible only from other classes in package.  Protected: permits all default access rights plus access from within any subtype.  Public: allows access from anywhere. CS300 3

4 Encapsulation  The idea that an object should never reveal details about itself that it does not intend to support.  Getters and Setters:  Common example of encapsulation in Java CS300 4

5 Getters and Setters example  Create a class Contact that extends Comparable :  Fields: name, age, email  Create constructor with arguments: name, age, email  Create getters and setters for all three fields  Create method compareTo to sort contacts by e-mail  Test CS300 5

6 Anonymous Class  Callback: your code needs to be notified when something in the UI changes.  Ex. a button is pushed and we need to change state, new data has arrived from the network and it needs to be displayed  Java provides idiom to pass blocks in code  Anonymous classes are a handy tool for expressing many kinds of code blocks. CS300 6

7 7 Without anonymous classWith anonymous class public class myDataModel{ //Callback class private class keyHandler implements View.onKeyListener { public boolean onKey(View v, int keyCode, KeyEvent event) { handleKey(v, keyCode, event); } /* @param view in the view we model */ public myDataModel(View view){ view.setOnKeyListener(new KeyHandler()) } /** Handle a key event **/ void handleKey(View v, int keyCode, KeyEvent event){ // key handling code goes here … } public class myDataModel{ /* @param view in the view we model */ public myDataModel(View view) { view.setOnKeyListener( // this is an anonymous class!! new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { handleKey(v, keyCode, event); } } ); /** Handle a key event **/ void handleKey(View v, int keyCode, KeyEvent event){ // key handling code goes here … } CS300

8 References  Programming Android by Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura CS300 8

9 Install ADT and AVD  http://developer.android.com/sdk/index.html#dow nload http://developer.android.com/sdk/index.html#dow nload  If you already have eclipse use an Existing IDE option CS300 9

10 Install notes  Don’t forget to configure the ADT (Eclipse, Window, Preferences, Android)  Do not forget to set an AVD target (run configuration)  Do not forget to assign SD memory  Check devices: use the proper one CS300 10

11 Hello Android!!  New android project  Delete activity_main.xml  Right click layout -> create new xml. Choose relative layout  Configure resolution: samsung nexus 4 inch screen, 480-by-800  Create AVD CS300 11

12 Hello Android!!  Drawables:  Hdpi: high density  Mdpi: medium density  Ldpi: low density  Xhdpi: extra high  Change ID property for relative layout  +: create new variable with name  Change BG property  RGB color map CS300 12

13 Hello Android!!  Add a TextView  Configure text property: create a new string resource (good practice) R.String: name String: content  Configure text size: Dp: density independent pixel  Configure layout margin top  Text color: #00F  Text Style: bold CS300 13

14 Hello Android!!  Add image view  Create new drawable: be careful with names! No hyphens allowed  Change: Id Layout below: put it under your textview Layout center horizontal Src: do not forget to add your image in a drawable directory CS300 14


Download ppt "More Java: Encapsulation, Getters, Setters, Anonymous Class 1 CS300."

Similar presentations


Ads by Google