Advanced Programming in Java

Post on 16-Feb-2016

31 views 0 download

Tags:

description

Advanced Programming in Java. Sadegh Aliakbary Sharif University of Technology Fall 2012. Agenda. Enumerations Static Import Annotation. Enumerations. Enumerations. Suppose you have a class with a few instances Example: Student Type : - PowerPoint PPT Presentation

transcript

Advanced Programming in Java

Sadegh AliakbarySharif University of Technology

Fall 2012

Sharif University of Technology 2

AgendaEnumerationsStatic ImportAnnotation

Fall 2012

Enumerations

Sharif University of Technology 4

EnumerationsSuppose you have a class with a few

instancesExample:

Student Type : <BS, MS, PhD>SMS Status : <Sent, Delivered, Not Delivered,

Not Sent>Color : <Blue, Green, Black, Red>

How do you implement it?The class should not be inheritedThe instances are limited: no further instances

Fall 2012

Sharif University of Technology 5

An Implementationfinal class Color{

public static final Color Black = new Color(1);public static final Color Blue = new Color(2);public static final Color Green = new Color(3);public static final Color Red = new Color(4);

private int color;private Color(int i) {this.color = i;}

}

Fall 2012

Applications of a private constructor

Sharif University of Technology 6

Java enumJava introduces enumerations for this

purposeEnumerated Data TypeA simple classenum keyword instead of class or interfaceComma seperated enum instancesenum instances are constantenum Color {

Black, Blue, Green, Red}

Fall 2012

Sharif University of Technology 7

Enumenum Color {Black, Blue, Green, Red

}

final class Color{ public static final Color Black = new Color(); public static final Color Blue = new Color(); public static final Color Green = new Color(); public static final Color Red = new Color();

}Fall 2012

Sharif University of Technology 8

Enum Sampleenum Shape {

Rectangle, Circle, Square}

enum StudentType{BS, MS, PhD

}

Fall 2012

Sharif University of Technology 9

Using EnumsColor color = Color.Black;Shape shape = Shape.Circle;show(shape, color);...private static void show (Shape shape, Color color) {//show a shape with this color...

}Fall 2012

Sharif University of Technology 10

Enum Characteristicsenum types are implicitly final

Can not be a super-classBecause they declare constants that should not

be modifiedInstances are constants

enum constants are implicitly public, static and final

No new instances can be createdobject instantiation of enum types with

operator new results in a compilation error.

Fall 2012

Sharif University of Technology 11

EnumEnum can be a more complex classWith many constructorsAnd fieldsAnd methods

Fall 2012

enum Shape {Rectangle(1), Circle(2), Square(3);

private int number;Shape(int i){ number= i;}public int getNumber(){ return number;}

}

Shape shape = Shape.Circle;print (shape.getNumber());

shape = Shape.valueOf("Rectangle");print(shape.getNumber());

Shape[] shapesArray = Shape.values();

for (Shape s : shapesArray) {print(s.name());

}

try{shape = Shape.valueOf("Pyramid");

}catch(Exception exp){print("Pyramid is not included in Shape");

}

Fall 2012

Sharif University of Technology 13

Static ImportIn order to access static membersQualify references with the class they came from. For example:

double r = Math.sin(Math.PI * theta);static import allows unqualified access to static members without inheriting from the type containing the static

membersimport static java.lang.Math.PI;

orimport static java.lang.Math.*;double r = sin(PI * theta);

Fall 2012

Sharif University of Technology 14

AnnotationAn annotation is a special form of metadata Added to Java source codeClasses, methods, variables, parameters and

packages may be annotatedUnlike Javadoc tags, Java annotations can be

reflective They can be embedded in class files (byte code)May be retained by the Java VM at run-timeExample

@Override, @Deprecated, @ SuppressWarnings, …

Fall 2012

Ergonomy

Sharif University of Technology 16Fall 2012

Sharif University of Technology 17Fall 2012

Sharif University of Technology 18Fall 2012

Sharif University of Technology 19Fall 2012

Sharif University of Technology 20Fall 2012