Presentation is loading. Please wait.

Presentation is loading. Please wait.

June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 1 Lecture 3 Object Oriented Programming in Java Language Basics Classes,

Similar presentations


Presentation on theme: "June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 1 Lecture 3 Object Oriented Programming in Java Language Basics Classes,"— Presentation transcript:

1 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 1 Lecture 3 Object Oriented Programming in Java Language Basics Classes, Interfaces and Packages

2 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 2 Assignment B Primitive objects and primitive object wrapper classes throwing exceptions

3 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 3 Today’s Lecture Trail: Learning the Java Language Lesson: Classes, Interfaces, and Packages

4 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 4 What makes up a class: class declaration class body constructor for the class variables methods

5 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 5 Inheritance Tree An object that is instantiated from a class contains all the variables and methods defined for that that class and all its ancestors. However, the methods may have been modified (overridden) somewhere along the way. Also, access to those variables and methods may have been restricted through use of the public, private, and protected keywords

6 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 6 The parents rule Java does not involve a specification of an access specifier, public, private, or protected at the inheritance interface. In other words, inheritance access control cannot be used in Java to modify the access control assigned to a member of the parent class: –in other words (english) once the parent defines the access to its methods and variables, the children cannot modify them.

7 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 7 Inheritance extends keyword Default superclass: Object –Inheriting the methods of the Object class –inheriting the variables of the Object class class A inherits from class B –class A inherits the variables from class B –class A inherits the methods from class B Inheritance is restricted to the non-private methods and variables

8 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 8 Examples of inheritance

9 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 9 Public, Final & Abstract classes Classes can be declared to be either public, abstract, or final, or some combination of the three. However, before we can make any sense out of the public keyword, we need to know a little about how classes are grouped into packages.

10 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 10 Packages We will see packages later on in more details. In simple words, packages are a way to group classes together. A class defines its package by adding the keyword “package” at the beginning of the file. Example: –package com.mellon.aPackageName

11 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 11 Public classes Explicitly define the public keyword otherwise your class will be visible only within its own package

12 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 12 Abstract Classes An abstract class is a class that is designed to be inherited from (subclassed). It is not intended to be a class from which objects are instantiated (you cannot do a “new” on the class) Note that the methods themselves can be abstract Why create abstract classes?

13 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 13 Final Classes The opposite of an abstract class is a final class. A final class cannot be subclassed. Why use final classes? Can a class be both abstract and final? Examples: –abstract and final –final class A is extended by class B

14 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 14 Examples of abstract and final classes

15 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 15 Interfaces Interfaces are like the roles that a class can play A class that implements an interface must define the methods that are specified by the interface Whenever a class claims to implement an interface, you can be assured that it provides a definition for all the methods declared within that interface. Otherwise, the class cannot be compiled.

16 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 16 Implementing Interfaces A class may implement one or more interfaces using the keyword implements and a comma-delimited list of interface names as shown below: class MyClassName extends MySuperClass implements MyInterface, YourInterface { //body of class }

17 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 17 Examples with interfaces

18 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 18 Constructors Constructors are used to instantiate a class Even if you don’t explicitly define a constructor the compiler creates one for you It is safer to explicitly define the constructor(s) Constructor(s) are methods that have the same name has the class name and return void

19 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 19 Multiple Constructors A class can have multiple constructors The only difference between them is the list of parameters that comes with the constructor Why are they parameters to the constructors?

20 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 20 A “super” keyword The super keyword allows a constructor to call the constructor of a parent class If present in the constructor the super keyword must appear first in the body of the method Why must super appear first?

21 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 21 Access control to the constructors A constructor can be private, protected, or public Always explicitly specify the access If all the constructors are private how do I instantiate the class

22 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 22 Examples of constructors

23 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 23 Variables Types of variables –Member variables class variables Instance variables –Method variables local variables

24 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 24 The “static” keyword The keyword static determines whether the variable is a class variable or an instance variable To access a static variable you must qualify it with the class name (NOT the instance name) –for example: ClassName.theVariableName = aValue; Why should we use static variable?

25 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 25 Final Variables Determines whether the variable is a constant or not Example: –declaring a final object and trying to assign a new value to it

26 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 26 Controlling access to member variables Classes can protect their member variables from being access by other objects

27 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 27 Subtleties of the private keywords It is applied at the class level. In other words, objects of the same types have access to each other’s private variables

28 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 28 Subtleties of the protected keyword The protected member variable of a super class is accessible from a subclass only if the subclass and the superclass are in the same package

29 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 29 Subtleties of the public keyword None! Everyone can see a public member variable.

30 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 30 Subtleties of the package keyword You get package level access if you don’t specify the access level

31 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 31 Examples of access levels on member variables

32 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 32 Access level to member methods Works just like member variables access level

33 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 33 Instance Vs. Class Members (methods and variables) “instance” member by default use “static” to override the default and it the member becomes a “class” member

34 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 34 Class Members All instances of a class share the same copy of the class member class variables can be accessed via the instance (use the instance name) or via the class itself (use the class name)

35 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 35 Instance Members By default all members are instance members Every instantiated class carries its own copy of the instance variable. In other words, instance variables are not shared across instances of the class

36 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 36 Examples of instance and class members

37 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 37 Packages Purpose: –grouping relevant classes together –avoiding name clashes among developers Notation: package mypackage public class AnyClass { …. } Scope of the package statement: –entire source file If you don’t declare a package: –the compiler puts your class in the default package

38 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 38 Package name conventions Use reversed Internet domain name: –com.company.package –example: com.mellon.lineofbusiness.packagename com.sun... edu.cmu…

39 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 39 Using a package Strategy 1: –use the packagename.classname approach –example: »com.mellon.aClassName s = new com.mellon.aClassName(); Strategy 2 –import the package –put import statement at the beginning of the file and after the package statement: import com.mellon.*; … aClasName s = new aClassName(); –Use wildcards where necessary java.lang.* is always imported by default

40 June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 40 Compiler, Run-time and Packages Compiler (javac): –creates directories that reflect the package hierarchy –compiles the files and places them in their respective directory hierarchy –uses the “classpath” option on the command line to find the source files within the hierarchy of directories. –Example: »javac -classpath.;c:\myclasses;c:\jdk\lib\classes.zip *.java Run-time (java): –uses the “classpath” option on the command line to find classes within the hierarchy of directories. –Example: »java -classpath.;c:\myclasses;c:\jdk\lib\classes.zip


Download ppt "June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 1 Lecture 3 Object Oriented Programming in Java Language Basics Classes,"

Similar presentations


Ads by Google