1 / 30

UML Basics & Access Modifier

UML Basics & Access Modifier. UML Basics. Java: UML Diagrams. EVE does Java. UML Diagram – Class & Object. A class is described using a rectangle box with three sections.

malvina
Download Presentation

UML Basics & Access Modifier

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML Basics & Access Modifier UML Basics

  2. Java: UML Diagrams EVE does Java

  3. UML Diagram – Class & Object A class is described using a rectangle box with three sections. • The top section gives the class name, the middle section describes the fields, and the bottom section describes the methods. The middle and bottom sections are optional, but the top section is required. • An object is described using a rectangle box with two sections. • The top section is required. It gives the object’s name and its defining class. The second section is optional; it indicates the object’s field values.

  4. The Access Modifiers • The symbols +, - and # are used to denote, respectively, public, private, and protected modifiers in the UML. The static fields and methods are underlined.

  5. The Access Modifiers -- public • public access modifier: the + sign in UML • Fields, methods and constructors declared public (least restrictive) within a public class are accessible by all class in the Java program, whether these classes are in the same package or in another package. • For simplicity, just take package as the file folder in Windows • Note: in one application program, there is only and only one public class • Fields/methods are called Class fields/method/member, i.e., you don’t need to create an instance to use them; the convention is to use the classname.methodName notation

  6. The Access Modifiers -- private • private access modifier: the – sign in UML • The private (most restrictive) fields or methods cannot be accessed outside the enclosing/declaring class. To make all fields private, provide public getter/setter methods for them. • The getter is used to set the values of the data fields • The setter is used to change/modifier the fields

  7. The Access Modifiers -- protected • protected access modifier: the # sign in UML • Fields, methods and constructors declared protected in a class can be accessed only by subclasses in other packages and by those in the same class even if they are not a subclass of the protected member’s class.

  8. The Access Modifiers -- default • default access modifier: without any sign • when no access modifier is present, any class, field, method or constructor are accessible only by classes in the same package. • This is also called the instance members, i.e., must create an instance of the class before the fields/methods can be used • Use the instanceName.method() format

  9. What is the Modifier? +constructor() • Public • Private • Final • Protected • Static • Default

  10. Good!What is this Modifier? -radius: double • Public • Private • Final • Protected • Static • Default

  11. Good!What is this one? + numberOfObjects(): int • Public • Private • Final • Protected • Static • Default

  12. Good!What is this one? # aMethod(): void • Public • Private • Final • Protected • Static • Default

  13. Answer the following: • How do you tell which method is a constructor? • To access private methods, you need public _______ and ________ methods. (Also called Accessors and Mutators) • A modifier with no symbol is accessible only within the same folder or __________. see see see

  14. Now let’s build a program • The name of the class will be, of course, Rectangle. • class Rectangle

  15. class Rectangle { // Data members privatedouble width = 1, height = 1; privatestatic String color = "yellow"; It has two private or local variables, and a static or global variable that is shared. Rectangle class

  16. // Constructorpublic Rectangle() { } The default constructor (with no parameters) - it will use the initialized values for height, width, and color. Rectangle class

  17. // Constructor public Rectangle(double width, double height) { this.width = width this.height = height; } The Rectangle constructor needs two doubles. If you wish to use the same name in the parameters (formal and actual) you use this. Rectangle class

  18. publicdouble getWidth() { return width; } In order to access or make changes to private variables, you need sets and gets. (Accessors and Mutators) Rectangle class

  19. publicdouble getWidth() { return width; } publicdouble getHeight() { return height; } This is to access a Rectangle object’s height and width after it is constructed. Rectangle class

  20. publicstatic String getColor() {return color; }publicstaticvoid setColor(String color) { Rectangle.color = color; } Color is static- it can be shared – and changed- with all rectangle objects. Rectangle class

  21. publicdouble getArea() { return width * height; } publicdouble getPerimeter() { return 2 * (width + height); } Now we just need the methods to get the area and perimeter of a rectangle object. Rectangle class

  22. class Rectangle {// Data membersprivatedouble width = 1, height = 1;privatestatic String color = "yellow";// Constructorpublic Rectangle() { }// Constructorpublic Rectangle(double width, double height) {this.width = width;this.height = height; }publicdouble getWidth() {return width; }publicdouble getHeight() {return height; }publicstatic String getColor() {return color; }publicstaticvoid setColor(String color) { Rectangle.color = color; }publicdouble getArea() {return width * height; }publicdouble getPerimeter() {return 2 * (width + height); }} Rectangle class Now put it all together and compile it. Did you get it?

  23. publicclass TestRectangle {publicstaticvoid main(String[] args) { To see if it works you now have to create a TestRectangle class. - which includes main. TestRectangle class

  24. Rectangle myRect1 = new Rectangle(); Rectangle myRect2 = new Rectangle(4, 40); Rectangle myRect3 = new Rectangle(3.5, 35.9) Let’s create three rectangles, one default and two with different parameters. TestRectangle class

  25. System.out.println("The area of the rectangle is " + myRect1.getArea()); System.out.println("The perimeter is " + myRect1.getPerimeter()); System.out.println("The color is " + myRect1.getColor()); To see if it worked, let’s print out the first one. Compile and run. Get it? TestRectangle class

  26. The area of a rectangle with width 1.0 and height 1.0 is 1.0 The perimeter of a rectangle is 4.0 The color is yellow This is the rectangle object with no parameters. You can print out the height and width if you wish. TestRectangle class

  27. System.out.println("The area of the rectangle is " + myRect2.getArea()); System.out.println("The perimeter is " + myRect2.getPerimeter()); System.out.println("The color is " + myRect2.getColor()); Now try the next rectangle using (4,40). TestRectangle class

  28. The area of the rectangle is 160.0ÏϧÏThe perimeter is 88.0ÏϧÏThe color is yellow Did you get it? TestRectangle class

  29. myRect3.setColor("red"); System.out.println("The area of the rectangle is " + myRect3.getArea()); System.out.println("The perimeter is " + myRect3.getPerimeter()); System.out.println("The color is " + myRect3.getColor()); Let’s try something a little different. Set the color for the third rectangle to “red” before you print it out. TestRectangle class

  30. ÏThe area of the rectangle is 125.64999999999999ÏϧÏThe perimeter is 78.8ÏϧÏThe color is redÏÏ§Ï Did you get it?. TestRectangle class

More Related