Download presentation
Presentation is loading. Please wait.
Published byAlannah Audrey Dennis Modified over 9 years ago
1
More Object Concepts Chapter 4
2
Our class is made up of several students and each student has a name and test grades How do we assign the variables for each student? Student 1 Name:Anne ID#:900001 Test1:92 Test 2:85 Student 2 Name:Barry ID#:900002 Test1:88 Test 2:81 Student 3 Name:Carl ID#:900003 Test1:90 Test 2:95
3
The differences between one student and another is simply the variable assignments Instead of creating multiple variables for each student, we could create one class with multiple objects This produces a concept of an object within an object
4
What does it mean to be a student? class Student { String name; String idnum; int test1; int test2; }
5
How do we fill in the information? Let’s create a new student within the class student1 = new Student( ); student2 = new Student( ); Now we can fill in the desired variable assignment for each unique student
6
class Student { String name; String idnum; int test1; int test2; } class StudentInfo { public static void main(String[ ] args) { Student student1; student1 = new Student( ); student1.name = "Anne"; student1.idnum = "900001"; student1.test1 = 92; student1.test2 = 85; System.out.println(student1.name); System.out.println(student1.test1); } Create and compile the Student class Create and compile the StudentInfo class
7
Declare a variable within the object Student student1; This indicates that if and or when the variable student1 is assigned, that assignment will be an instance of the Student class Reserves the variable name student1 The actual creation of the object occurs in the statement: student1 = new Student( );
8
Our Student class works well, but has one serious flaw Once the data is assigned, anyone can view the data for any student Student1 should not have access to student2 or student3 We can create an accessor method to hide the data not assigned to that particular user
9
class Student { private String name; public void setName(String n) { name = n; } public String getName( ) { return name; } Note: private variable can only be referenced within the class
10
The accessor method for the Student class now limits access to each instance (in this case for each student along with their individual information) In the main method we will replace the assignment student1.name = "Anne"; with the reference student1.setName( "Anne" ); and student1.getName( );
11
class Student { private String name; private String idnum; private int test1; private int test2; public void setName(String n) { name = n; } public String getName( ) { return name; } public void setIdNum(String id) { idnum = id; } public String getIdNum( ) { return idnum; } public void setTest1(int t) { test1 = t; } public int getTest1( ) { return test1; } public void setTest2(int t) { test2 = t; } public int getTest2( ) { return test2; } class StudentInfo { public static void main(String[ ] args) { Student student1 = new Student( ); student1.setName ( "Anne" ); student1.setIdNum ( "900001" ); student1.setTest1 ( 92 ); student1.setTest2 ( 85 ); System.out.println(student1.getName( )); System.out.println(student1.getIdNum( )); System.out.println(student1.getTest1( )); System.out.println(student1.getTest2( )); }
12
The Student class we created is called a constructor Constructors are used to initialize the instance variables of an object Constructors are similar to methods, but with some important differences Constructor name is the class name If a constructor does not exists, a default constructor initializes the variables (zero, null, false)
13
Each constructor in a class may have the same name as the class Which constructor to use depends on the parameter data type. Class Student { private String name; private int test1; public Student( ) { name = " " ; test1 = 0; } public Student(String student) { name = student; } public Student( int test ) { test1 = test; } } No parameter uses this method String parameter uses this method Integer parameter uses this method
14
Now we do not need to worry about multiple method names setName ( ) setTest1 ( ) Unfortunately, we still have multiple variable names. We can fix this using the this command this(...) - Calls another constructor in same class If a constructor uses this, it must be in the constructor's first line; ignoring this rule will cause a compile error
15
Class Student { private String name; private int test1; public Student( ) { name = " " ; test1 = 0; } public Student(String student) { name = student; } public Student( int test ) { test1 = test; } Class Student { private String name; private int test1; public Student( ) { this ( " ", 0 ); } public Student(String name) { this ( name, 0 ); } public Student( int test1 ) { this ( " ", test1 ); } }
16
this must be used if a parameter or other local variable with the same name is used in the method Otherwise, all instances of the variable name will be interpreted as local int someVariable = this.someVariable localinstance
17
public class Circle { private double radius; public Circle(double radius) { this.radius = radius; } public Circle() { this(1.0); } public double getArea() { return this.radius * this.radius * 3.14159; } this must be explicitly used to reference the data field radius of the object being constructed this is used to invoke another constructor Every instance variable belongs to an instance represented by this, which is normally omitted
18
Many classes commonly used by wide variety of programmers Java contains nearly 500 classes Package or library of classes Folder provides convenient grouping for classes Many contain classes available only if explicitly named within program Some classes available automatically
19
Fundamental or basic classes Implicitly imported into every Java program java.lang package Only automatically imported, named package Optional classes Must be explicitly named
20
java.lang.Math class Contains constants and methods used to perform common mathematical functions No need to create instance Imported automatically Cannot instantiate objects of type Math Constructor for Math class private
22
public class MainClass { public static void main(String[ ] args) { System.out.println(Math.E); System.out.println(Math.PI); System.out.println(Math.abs(-1234)); System.out.println(Math.cos(Math.PI/4)); System.out.println(Math.sqrt(25)); System.out.println(Math.min(20, -2)); System.out.println(Math.round(1.573)); System.out.println(Math.pow(2, 4)); System.out.print(Math.random( ));} }
23
Use prewritten classes Use entire path with class name Import class Import package that contains class To use import statements Place before any executing statement in Java file Prior to import statement Use blank line or comment line but nothing else
24
Wildcard symbol Alternative to importing class Import entire package of classes Use asterisk Can be replaced by any set of characters Represents all classes in package No disadvantage to importing extra classes Importing each class by name can be form of documentation
25
GregorianCalendar class Seven constructors Default constructor creates calendar object containing current date and time in default locale (time zone) Can also specify date, time, and time zone get() method Access data fields
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.