Sunteți pe pagina 1din 21

CS244AdvancedProgrammingApplications

DrWalidM.Aly

Lecture1

RevisiononBasicJavaConcepts
1
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
TIOBEProgrammingCommunityIndexforDecember2011
http://www.tiobe.com

Position Position Programming Ratings


Dec2011 Dec2010 Language Dec2011
1 1 Java 17.561%
2 2 C 17.057%
3 3 C++ 8.252%
4 5 C# 8.205%
5 8 ObjectiveC 6.805%
6 4 PHP 6.001%
7 7 (Visual)Basic 4.757%
8 6 Python 3.492%
9 9 Perl 2.472%
10 12 JavaScript 2.199%
11 11 Ruby 1.494%
12 10 Delphi/ObjectPascal 1.245%
13 13 Lisp 1.175%
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
WhatisnewwithJava?
Java7ReleasedJuly2011
Java&theCloudComputing
Java&Android

3
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
CourseMailGroup
http://groups.yahoo.com/group/JAVACS244/

4
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
InstallingNetBeans
http://netbeans.org/downloads/index.html

JDK7&NetBeansBundle

JDK7u3withNetBeans7.1

http://www.oracle.com/technetwork/java/javase/downloads/jdk7netbeansdownload432126.html
5
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
objectsandclasses
Weworkwithphysicalobjectsallthetime:televisions,cars,customers,reports,lightbulbs,printers.
Asoftwareobjectisarepresentationofathingthatwewanttomanipulateinourprogram.
Aclassisatemplatethatdefineswhatanobject'sdataandmethodswillbe.
objectssharetwocharacteristics:stateandbehavior.
Thestateofanobjectisrepresentedbyvariablesandbehaviorbyasetofmethods
OOPreflectshowpeoplethinkofrealworld.
classCircle classStudent
classclassName {
{ {
doubleradius; Stringname;
doubleGPA;
..
Variablesdescribingstate doublegetArea() ..
voidregisterUnit
{
Methodsdescribingbehavior {

} }
. }
} .
}

Studentobject1 Studentobject2
Name=AhmedAly Name=MohamedFathi
Registrationnumber=245245 Registrationnumber=34345
GPA=3.2 GPA=2.2
registeraunit registeraunit
6
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
ASimpleJavaclass

//author:AhmedAli
publicclassCar{
Stringcolor;
privateintspeed;
privateintnumOfDoors=4;
publicvoidincrementSpeed(intvalue){
..
}
publicvoiddecrementSpeed(intvalue){
..
}
publicintgetSpeed(){
..
}
publicbooleanisMoving()
{
..
}
publicstaticvoidgetNumberOfCars()
{
}
}
7
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Javaclasses
publicclassA
Classesinyourprogrammightbeyourownclassesor {
classesthatalreadyexistinjavaAPI. publicstaticintx;
AJavaclasshasstaticandnonstaticvariables publicinty;
Javaclasshasstaticandnonstaticmethods(instancemembers) publicA()
JavaclasshasoneormoreConstructors {
Constructorsarespecialtypeofmethods,themusthavethe ..
samenameasclass,andwithnoreturntype. }
Weuseconstructortocreateobjectsfromclasses publicA(intz)
Variables,methodsandconstructorsareknownasclass {
members ..
}
classclassName publicstaticvoidm1()
{ {
..
Variablesdescribingstate
}
Constructors


Methodsdescribingbehavior publicvoidm2()

} {
..
}
}
8
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
HowtousetheclassMembers
publicclassA{
Staticmembersareaccessedbythenameofclass
publicstaticintx=10;
ex:A.x;A.m1(); publicinty=20;
Tousenonstaticmembersyouhavetocreateobjects publicA()
fromtheclassusingconstructor {
ex:Aa1=newA(); System.out.println("CreatingObject");
andthenaccessnonstaticmemberswiththeobject }
youcreated publicA(intz)
{
ex:a1.y;a1.m2();
System.out.println("CreatingObjectwithz="+z);
}
publicclassTest{ publicstaticvoidm1()
publicstaticvoidmain(String[]arg){ {
System.out.println("Hifromm1");
//accessstaticmembers
}
A.m1(); publicvoidm2()
inti=A.x; {
System.out.println("x="+i); System.out.println("Hifromm2");
//accessinstancemembers }
Aa1=newA(); }
a1.m2();
intj=a1.y;
System.out.println("y="+j);
}
}
9
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Example:ClassRadio
publicclassRadio{
intvolume;
Stringstation; Radioobject1 volume=4
booleanpowerStatus; station=NegoomFM
Powerstatus=true
publicvoidincreaseVolume(){
volume++;
Radioobject2 volume=7
}
publicvoiddecreaseVolume(){ station=Quran
volume; Powerstatus=true
}
publicvoidchangeStation(StringnewStation){
station=newStation; Radioobject3 volume=0
} station=FM
publicvoidturnOn(){ Powerstatus=false
volume=3;
powerStatus=true; TurnOn
}
publicvoidturnOff(){
volume=0; volume=3
powerStatus=false; station=FM
} Powerstatus=true
10
}
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Constructors
Aclassprovidesmethodsofaspecialtype,knownasconstructors,whichare
usedtocreateanewobject(instance).
class Circle {
Constructor must have the same name as the class double radius=0 ;
name. public Circle()
Constructorsdonothaveareturntypenotevenvoid, {
cannotbestatic.
}
default blank constructor, is provided automatically public Circle (double r)
onlyifnoconstructorsareexplicitlydeclaredintheclass. {
Aconstructorisgenerallyusedtodoinitialsetupforan radius=r;
object }
public double findArea()
{
//
}
}

multipleconstructorswiththesamenamebutdifferentsignaturescan
exist.(overloading)
11
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Howtocreateanobjectfromclass?

Toconstructanobjectfromaclass,invokeaconstructoroftheclassusingthenew
operator,asfollows:newClassName(arguments);
constructorcancontainanytypeofcodethatanormalmethodcouldcontain.When
constructorisinvokedanobjectiscreatedandalsocodeinconstructorisexecuted.

class Circle { classTest{


double radius=0 ;
publicstaticvoidmain(String[]arg)
public Circle()
{ {
Circlec1;
}
public Circle (double r) c1=newCircle();
{
Circlec2=newCircle();
radius=r;
} Circlec3=newCircle(5.1);
public double findArea()
}
{
return radius * radius * 3.14; }
}
}
c1,c2,c3arereferencedatatypes
c1 radius=0 c2 radius=0 c3 radius=5.1
12
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Example:AddingconstructorstoclassRadio
publicclassRadio{
intvolume; publicvoidturnOn(){
Stringstation; powerStatus=true;
booleanpowerStatus; }
publicRadio() publicvoidturnOff(){
{ volume=0;
turnOn(); powerStatus=false;
Volume=3; }
} }
publicRadio(intstartVolume)
{
turnOn(); PublicclassTest
Volume=startVolume; {
} publicstaticvoidmain(String[]arg)
publicvoidincreaseVolume(){ Radioradio1=newRadio();
volume++; Radioradio2=newRadio(2);
} radio2.increaseVolume();
publicvoiddecreaseVolume(){ .
volume;
}
publicvoidchangeStation(StringnewStation){ }
station=newStation;} 13
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
VariablesInitialization
Membervariablesthataredeclaredbutnotinitializedwillbesettoadefaultbythecompiler

DataType DefaultValue
Byteshortintlongfloatdouble 0
char '\u0000'
String(oranyobjectrefrence) null
boolean false

localvariables:thataredeclaredbutnotinitializedwillnotbesettoadefaultbythecompiler
Accessinganuninitializedlocalvariablewillresultinacompiletimeerror

14
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
AccessinganObject'sinstancevariablesandMethods

classTest{
classA publicstaticvoidmain(String[]arg)
{ {
publicinty; Aa1=newA();
publicintx; a1.x=7;
publicvoidm(){ a1.m2();
Aa2=newA();
} a2.x=10;
publicvoidm2(){ a2.m2();
y=9;
m(); }
} }
}
x=7 x=10
a1,a2areofreferencedatatype
a1 a2
Rules:
Instancevariableofobjectareaccessedfromanotherclassby:objectName.variableName
instancemethodsareaccessedfromanotherclassby:objectName.methodName(argument)
Insidesameclass,memberscanbecalledwiththeirnamesonly

15
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Example:AccessingmembersofclassCircle

classCircle{ classTest{
publicintradius; publicstaticvoidmain(String[]arg)
publicdoublearea; {
publicvoidsetArea() Circlec1=newCircle();
{ c1.radius=5;
this.area=3.14*(this.radius)*(this.radius); c1.setArea();
} System.out.println(c1.area);
Circle() Circlec2=newCircle(8);
{ c2.setArea();
} System.out.println(c2.area);
Circle(intr) }
{ }
this.radius=r;
}
} radius=5 radius=8

area=3.14*5*5 area=3.14*8*8
c1 c2
Rule:

Instancevariablesininstancemethodsarealwaysrelatedtothe
callingobject,JAVAaddthis.beforeeachofthemimplicitly
Youcanomitwritingthis 16
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Example:AccessingmembersofclassBankAccount

ClassBankAccount
publicclassBankAccount
{
intaccountNum=0; ClassBank
floataccountBalance=0;
publicBankAccount(){} publicclassBank
publicBankAccount(intaccountNumber,floatbalance) {
{
accountNum=accountNumber; publicstaticvoidmain(String[]arg)
accountBalance=balance; {
} BankAccountaccount1=newBankAccount();
voidsetAccountNumber(intnum)
{ account1.setAccountNumber(456);
accountNum=num; account1.deposit(1000);
} BankAccountaccount2=newBankAccount(100,200);
voidwithdraw(floatamount) }
{
accountBalance=accountBalanceamount; }
}
voiddeposit(floatamount)
{
accountBalance=accountBalance+amount;
}
} 17
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
StaticClassmembers:Staticvariables
classStudent{
Staticvariables(classVariables)
staticStringdean;
Ex:staticintx; Stringname;
intregistrationNumber;
Onlyonecopyofthisvariableexist,all Student(StringstudentName,intregNumber)
objectssharethesamecopywiththe
{
samevalue.
name=studentName;
Canbeaccessedwithoutcreationofany
registrationNumber=regNumber;
object.
}
Canbeaccessedinsameclassby
variableNameorclassname.varaibleName
}
orObjectName.variableName.
classTest{
Canbeaccessedinanotherclassby
publicstaticvoidmain(String[]arg)
classname.varaibleNameor
ObjectName.variableName. {
Student.dean="DrMohamed";
Studentstudent1=newStudent("AhmedAly",123);
Studentstudent2=newStudent("Akramahmed",367);
LocalVariablescanneverbedeclared System.out.println(student1.dean);
static. System.out.println(student2.dean);
}}

18
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
Example
p
classA{
staticintx;
inty;
x 1 }
3
2

y=0
y=1 classTest
{
publicstaticvoidmain(String[]arg)
a1 {
y=2
y=0
A.x++;
Aa1=newA();
a2 a1.x++;
a1.y++;
Aa2=newA();
a2.x++;
a2.y++;
a2.y++;
}
}

19
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly
StaticClassmembers:Staticmethods
classStudent{
staticStringdeanName;
Staticmethods Stringname;
intregistrationNumber;
Ex:staticvoidm(){} Student(StringstudentName,intregNumber){
Canbecalledwithoutcreationofanyobject
Canonlyaccessstaticvariablesandonlycall
name=studentName;
staticmethods. registrationNumber=regNumber;
CanbecalledinsameclassbymethodName() }
orclassname.methodName() publicstaticvoidsetDeanName(Stringname)
orObjectName.methodName() {
(sameeffect) deanName=name;
Canbecalledinanotherclassby }
classname.methodName()or
}
ObjectName.methodName()
(sameeffect)
classTest{
publicstaticvoidmain(String[]arg){
Student.setDeanName("DrMohamed");
Studentstudent1=newStudent("AhmedAly",123);
Studentstudent2=newStudent("Akramahmed",367);
}}
accessmodifiersandstatickeywordcan

appearinanyorder
lec1
CS244AdvancedProgrammingApplications DrWalidM.Aly
20
Yourrole
thiskeyword
passingbyvalueandpassingbyreference
Array
UMLclassdiagram

21
CS244AdvancedProgrammingApplications lec1 DrWalidM.Aly

S-ar putea să vă placă și