Title: Sin ttulo de diapositiva
1Arrays in Java
- An array is a collection of elements of the same
type - Declaration (we will use integers in this
example) - int A int A
- after this the elements do not exist yet !
- A new int10
- this means we have now 10 integer variables
A0, A1, A2, A3, A4, A5, A6, A7,
A8, A9 - for (int i0 i
- Ai i
- makes A0 0 A1 1 ....... A8
8 A9 9 - int i A.length gives the number of elements
(10 in this case) -
2Example with Arrays in Java
- Statistics about a list of numbers which is
entered by keyboard. The numbers are all positive
from 1 to 10. The last number entered will be the
0. After that the computer should answer the of
1, the of 2, etc. (see Program6) - Enter a number 3 The of 1s was 10
- Enter a number 6 The of 2s was 0
- Enter a number 9 The of 3s was 30
- Enter a number 5 The of 4s was 0
- Enter a number 3 The of 5s was 20
- Enter a number 7 The of 6s was 10
- Enter a number 9 The of 7s was 10
- Enter a number 5 The of 8s was 0
- Enter a number 1 The of 9s was 20
- Enter a number 3 The of 10s was 0
- Enter a number 0
-
3The arguments of a program
- Now we can understand something about what is
String args on the beginning of the main
method. It is an array of Strings. The values of
these String, as well as the length of the array
are given when the program is called. -
- public class Program7
- public static void main(String args)
- for(int i0 i
- System.out.println(Argument i is
argsi) -
-
- This program will show all the parameters passed
to the program when it was called, for example if
we write - java Program7 peter paul mary the program will
write - Argument 1 is peter
- Argument 2 is paul
- Argument 3 is mary
-
4Classes and Objects in Java
- We can say that there are two types of classes
from which we can create objects - Classes provided by the language there is a
large list of classes provided by the language
which the user can use. Many of them are in
libraries which must be imported (java.io.
contains the BufferedReader class) - Classes created by the user sometimes the user
wants to have an object of a class which doesn't
exist. For example, an object of a class
Student which should have all the information
for a student of the university. The user can
define - The variables which an object of this class will
have - The methods which can be applied to an object of
this class -
-
5Lets start by using an existing class the String
- A class is defined primarily by the methods you
can apply to an object of such class - There is a special type of method called
constructor, which creates a new object of this
class. - Example
- String myName //the object doesn't exist yet
- myName new String(Nelson Baloian)
- This is a call to the constructor.
- In order to apply a method to an object
- object_variable.method(parameters)
-
6Methods of the String class
- Length of a String int i myName.length()
- i will have the value 14
- i-th character char c myName.charAt(0)
- c will contain the character N
- char c myName.charAt(3)
- - c will contain the character s
- Sub sequence
- String sub myName.substring(7)
- sub will contain the string Baloian
- String sub myName.substring(3, 6)
- - sub will contain the string son
-
7Some methods of the String class
- Search for sub sequences
- String s new String(Helo, Nelson, Hello)
- int i s.indexOf(elo)
- - i will have the value 1, it searches for the
first appearance - Comparing boolean onnajiDesKa s1.equals(s2)
- the variable onnajiDes will have the value true
if the text of the string s1 is equal to the text
in the string s2 - int i s1.compareTo(s2)
- - i will have the following values depending on
s1 and s2 - 0 if s1s2, 0 if s1s2,
- The value of the string is according to where
they would appear in a dictionary, first means
smaller -
8Finding all the sub-strings of a String
We will pass 2 strings as arguments to the
program and the program will answer how many
times the second string appears in the first one
public class Program8 public static void
main(String args) int i , app 0
String first args0 String
second args1 do i
first.indexOf(second) if (i -1) break
app app1 first first.substring(i1
) while(true)
System.out.println(Found app times)
9User Defined Classes (the Clock)
public class Clock int hour, minutes
Clock(int x, int y) hour x minutes y
public int getHour() //same for
address and yearBorn return hour // for
yearBorn the return type is int public void
setName(String x) // same for address and
yearBorn name x // for yearBorn the
parameter is of type int public int
age(int thisYear) return thisYear -
yearBorn
10User Defined Classes (The Student)
public class Student String name, address
int yearBorn Student(String x, String y,
int z) name x address y yearBorn
z public String getName() //same for
address and yearBorn return name // for
yearBorn the return type is int public void
setName(String x) // same for address and
yearBorn name x // for yearBorn the
parameter is of type int public int
age(int thisYear) return thisYear -
yearBorn
11How to write methods
Type of value the method will return (void in
case it does not return any value)
Name of the method (given by the programmer)
public String getName( ) return name
Public, private, protected or static
Parameters of the method (none in this case)
The instructions should be written within the
brackets
12How to write constructor methods
Name of the method must be the class name
Parameters the constructor will receive to
create the new object
Student ( String x, String y, int z ) name
x address y yearBorn z
No need to write anything here
We can write more than one constructor
Student ( ) name N.N. address Tokyo
yearBorn 2000
This constructor puts default values to the new
object
13How to use-user defined classes
The file with the user-defined class should be
compiled The class file should be at the same
directory with the file containing the program.
public class Program9 public static void
main(String args) Student s1,s2 s1 new
Student() s2 new
Student(Simon,Santiago,1998)
s1.show() s2.show() s1.setName(John Smith)
s1.setAddress(123 5th Ave. New
York) String n s2.getName()
s2.setName(n Baloian) s1.show()
s2.show()
14Extending an existing class Inheritance
- One of the most powerful features of object
oriented programming is the possibility to extend
an existing class, even if the implementation of
the original class is not known. This is called
inheritance
Original Class
Super-class of the extended class
Definition of new variables and methods
Original Class
Extended Class
15Extending the Student class
public class WasedaStudent extends Student
int marks int nmarks
WasedaStudent(String x, String y, int z, int n)
super(x,y,z) // a call to the constructor of
the superclass marks new intn nmarks
0 public void putNewMark(int x)
marksnmarks x nmarks
nmarks 1 public double showAverage()
double sum 0.0 int i for(i0 i
return sum/nmarks
16Using the extended class
public class Program10 public static void
main(String args) WasedaStudent
ws1,ws2 ws1 new
WasedaStudent(student1,Musashino-shi,1980,5)
ws2 new
WasedaStudent(student2,Shinjuku-ku,1981,7)
ws1.putNewMark(10) ws1.putNewMark(5)
ws1.putNewMark(4)
ws2.putNewMark(5) ws2.putNewMark(8)
ws2.putNewMark(7)ws2.putNewMark(4)
System.out.println(ws1.showAverage())
System.out.println(ws2.showAverage())
ws1.show() ws2.show() Note that we can
use all the methods of the superclass