0% found this document useful (0 votes)
56 views13 pages

Topics: Class Definition Syntax Methods and Attributes Syntax

The document discusses class definition syntax and rules in Java. It covers topics like class definition syntax, types of classes (outer and nested classes), class definition rules, instance field syntax, and method syntax. An example class definition for a ComplexNumber class is also provided.

Uploaded by

Shubhankar Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views13 pages

Topics: Class Definition Syntax Methods and Attributes Syntax

The document discusses class definition syntax and rules in Java. It covers topics like class definition syntax, types of classes (outer and nested classes), class definition rules, instance field syntax, and method syntax. An example class definition for a ComplexNumber class is also provided.

Uploaded by

Shubhankar Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Topics

• Class Definition Syntax


• Methods and Attributes Syntax

1 Object-Oriented Programming Using Java


Defining Classes : Class Syntax

Class Syntax

<scope> [<abstract>/<final>] [<static>] class <class-name> [extends <super-class-name> ]


[ implements <interface-name-1> , <interface-name-2> , ..… , <interface-name-n>]
{
<< Instance Fields>>
<< Methods>>
…………………
………....……… Body of class
}
• […]  Represents Optional Features
• <abstract>, <final>, <static>, <class> , <extends>, <implements> are Java Keywords
• <scope> : public, private, protected, package private
• <abstract> : Used to Define Abstract Classes
• <final> : Optional Field, If used then it Indicates that class can not have subclasses
• <static> : Used only for nested (class defined inside some other class) classes only
• <extends> : extends keyword is used for sub-classes
• <implements> : implements keyword is used when a class implements interfaces
2 Object-Oriented Programming Using Java
Types of Classes

• Broad Category of Classes


1. Outer Classes
2. Nested Classes
a. Static Nested Classes
b. Non static Nested Classes
Outer Classes Nested Classes
// File Name: Demo2.java
// File Name: Demo1.java
class A
class A
{
{
class A1
}// End of class A Non-Static
{
class B Nested
}// End of class A1
{ Class
} // End of class B
static class A2 Static
class C
{ Nested
{
}// End of class A2 Class
}// End of class C
}// End of class A
3 Object-Oriented Programming Using Java
Class Definition Rules : Rule 1

• Rule 1: Scope of the Outer Class can be either


public or package private
Demo.java:1: modifier private
not allowed here
// File Name Demo.java
private class A
private class A
{ ^
}// End of class A Demo.java:4: modifier
protected class B protected not allowed here
{ protected class B
}// End of class B ^
2 errors
// File Name Demo.java
public class Demo
{ << No Error>>
}// End of class Demo Compilation Successful
class B
{
}// End of class B

4 Object-Oriented Programming Using Java


Class Definition Rules : Rule 2

• Rule 2: In a single source ‘.java’ file, only one class can


be defined with <public> scope.

Demo.java:2: class A is public, should be


// File Name:Demo.java declared in a file named A.java
public class A public class A
{ ^
}// End of class Demo Demo.java:5: class B is public, should be
public class B declared in a file named B.java
{ public class B
}// End of class B ^
Demo.java:8: class C is public, should be
public class C
declared in a file named C.java
{ public class C
}// End of class B ^
3 errors

5 Object-Oriented Programming Using Java


Class Definition Rules : Rule 3

• Rule 3: If a source ‘.java’ has a class with <public>


scope then file name should be named on class name
// File Name:Demo.java
public class A
{ javac Demo.java
}// End of class Demo
Demo.java:
class B
class A is public, should be declared in a file
{ named A.java
}// End of class B public class A
class C ^
{ 1 error
}// End of class B

So, In order to successfully compile, the file should be


named A.java
6 Object-Oriented Programming Using Java
Class Definition Rules : Rule 4

• Rule 4 : <static> keyword can only be used for nested


classes and not for outer classes

// File Name: Demo.java javac Demo.java


static class X modifier static not allowed here
static class X
{
^
}// End of class X modifier static not allowed here
static class Y static class Y
{ ^
}// End of class Y 2 errors

7 Object-Oriented Programming Using Java


Class Definition Rules : Rule 5

• Rule 5 : <final> class can not have sub-classes.


However, <final> keyword can be used for both Outer
and Nested Classes

// File Name: Demo.java


final class X
{ javac Demo.java
}// End of class X Demo.java:5: cannot inherit from
class Y extends X final X
{ class Y extends X
final class Y1 ^
{ 1 error
}// End of class Y1
}// End of class Y

8 Object-Oriented Programming Using Java


Class Definition Rules : Rule 6

• Rule 6 : <final> and <abstract> keywords can not be


used together for a class

F:\>javac Demo.java
// File Name: Demo.java Demo.java:2: illegal combination of
final abstract class X modifiers: abstract and final
{ final abstract class X
}// End of class X ^
1 error

9 Object-Oriented Programming Using Java


Class Definition Rules : Rule 7

• Rule 7 : <extends> keyword can be used only to extend


one super class. [Because Java does not support
multiple inheritance directly]
F:\>javac Demo.java
// File Name:Demo.java Demo.java:11: '{' expected
class X
{
class A extends X , A
}// End of class X ^
class Y extends X 1 error
{
}// End of class Y
class Z F:\>javac Demo.java
{ Demo.java:11: '{' expected
}// End of class Z class A extends X , A
class A extends X , A
{
^
}// End of class A Demo.java:14: '{' expected
class B extends Y extends Z class B extends Y extends Z
{ ^
}// End of class B
2 errors
10 Object-Oriented Programming Using Java
Instance Field and Method Syntax

Instance Field Definition Syntax

<scope> [<static>] [<final>] <type> <variable-name> [ = <value> ];

• [..] are optional features


• Where <scope> can be : public, protected, private or package private
• <type> can be : primitive type, class type or an interface type

Partial Method Definition Syntax


<scope> [<static>] [<final>] [<abstract>] [<synchronized>] <return-type> <method-name>(<arguments>)
{

……….// Method Body

} // End of Method

11 Object-Oriented Programming Using Java


Class Definition Example
// File Name : Complex Number
class ComplexNumber
{
private double real; // Real Part
private double imag; // Imaginary Part

/* Method to set the Value of Real Part */


public void setReal(double realValue)
{
real = realValue;
}// End of Method

/* Method to set the Value of Imaginary Part */


public void setImag(double imagValue)
{
imag = imagValue;
}// End of Method
}// End of class ComplexNumber

12 Object-Oriented Programming Using Java


Thank You

13 Object-Oriented Programming Using Java

You might also like