M251 Meeting 3 Full
M251 Meeting 3 Full
M251 Meeting 3 Full
1
Objectives
Visibility Modifiers
To define private data fields with appropriate get and set methods.
2
O.O. Programming Concepts
3
Classes
4
Example
class Circle {
/** The radius of this circle */
double radius = 1.0; Data field
/** Zero-argument-Construct */
Circle() {
}
Constructors
/** One-argument Construct */
Circle(double newRadius) {
radius = newRadius;
}
//One-argument constructor
Circle(double newRadius) {
radius = newRadius;
}
7
.Constructors, cont
8
Default Constructor
A class may be defined without constructors. In this
case, a no-arg constructor with an empty body is
implicitly defined in the class.
This constructor, called a default constructor, is
provided automatically only if no constructors are
explicitly defined in the class.
اذا ال يوجد قيم مبدئية لمتغيرات الكالس حاضرة في ذهنك في كل
مرة تقوم فيها بإنشاء اوبجكت من الكالس اترك الكالس بدون اي
في هذه الحالة سيقوم الكومبايلر بالنيابة عنكconstructors
وظيفة هذا الكونستركتور هوdefualt constructor بإنشاء
لالوبجكت الذي يتمdefault values تخصيص قيم ابتدائية 9
انشاؤه
Declaring Object Reference
Variables
10
Declaring/Creating Objects
in a Single line
11
Data fields (Attributes)
The data fields can be primitive or reference .
Example:
12
Attributes
شريحة اضافية غير موجودة بالساليدات االساسية
The null Value
data type field and it does not reference any object so it holds null.
14
Default Value for a Data Field
15
Creating Objects from student Class
16
Example
}
Compile error: variable not initialized 17
Data fields and Methods
Data fields can be classified into:
18
Instance Variables and Instance
Methods
Instance variables belong to a specific instance
(object). For example:
يجب ان يتم انشاء متغير من الكالس حتى نستطيع الوصول لهذه النوعية من االتربيوت
radius: 5.0
myCircle
Static constants are final variables shared by all the instances of the class,
You can access class variables and methods using class name.
20
Static Variable Example
Public class VariableDemo {
ستاتيك اتربيوت حيث تم استخدام الكلمة المحجوزة ستاتيك لتعريف المتغير
static int count=0;
نتيجة تنفيذ اوبجكتcount كل اوبجكت جديد يتم انشاؤه سيتعامل مع اخر قيمة وصل اليها المتغير
increment سابق للميثود
public void increment() { count++; }
public static void main(String args[]) {
VariableDemo obj1=new VariableDemo();
VariableDemo obj2=new VariableDemo();
obj1.increment(); //first count increment
obj2.increment(); //second count increment
System.out.println("Obj1: count is="+obj1.count);//count = 2
System.out.println("Obj2: count is="+obj2.count);//count = 2
}
}
Output:
21
Obj1: count is=2 Obj2: count is=2
Static Constants
static في حالة الstatic معfinal الحظ ضرورة استخدام كلمة
constant
22
Scope of Variables
23
Static methods
Example:
24
Packages
A package is used to associate a number of classes.
25
Import package
شريحة اضافية غير موجودة بالساليدات االساسية
Access modifiers
There are three keywords associated with controlling levels of access to class members
in Java: public, protected & private. These are known as access modifiers.
Example:
27
Visibility Modifiers and
Accessor/Mutator Methods
28
The private modifier restricts access to within a class, the default modifier
restricts access to within a package, and the public modifier enables unrestricted
access.
29
The default modifier on a class restricts access to within a package, and the
public modifier enables unrestricted access.
30
NOTE
An object cannot access its private members, as shown
in (b). It is OK, however, if the object is declared in its
own class, as shown in (a).
31
Why Data Fields Should Be private?
To protect data.
32
Getter methods
For example, inside the class Circle, we need to add another method:
public double getRadius(){
return radius
}
33
Setter Method
34
Example of
Data Field Encapsulation
Circle
The - sign indicates
private modifier -radius: double The radius of this circle (default: 1.0).
-numberOfObjects: int The number of circle objects created.
CircleWithPrivateDataFields
TestCircleWithPrivateDataFields Run
35
الساليدات التالية تحتوي على بعض االسئلة
مالحظة :االسئلة غير مقتبسة من الكويزات السابقة وليس لها اي عالقة بالكويزات
( فقط لتوضيح بعض االفكار بالميتنج والتأكيد على الفهم )
36
Exercise: 1
Exercise: 2
Exercise: 3
Exercise: 4
Exercise: 5
Exercise: 6
Exercise: 7
Exercise: 8