Classes and Methods Computer Engineering Department Java Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2014.

Slides:



Advertisements
Similar presentations
Core Java Lecture 4-5. What We Will Cover Today What Are Methods Scope and Life Time of Variables Command Line Arguments Use of static keyword in Java.
Advertisements

1 Classes, Encapsulation, Methods and Constructors (Continued) Class definitions Instance data Encapsulation and Java modifiers Method declaration and.
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Methods. int month; int year class Month Defining Classes A class contains data declarations (static and instance variables) and method declarations (behaviors)
Road Map Introduction to object oriented programming. Classes
Access to Names Namespaces, Scopes, Access privileges.
Math class methods & User defined methods Introduction to Computers and Programming in JAVA: V
COMP 14 Introduction to Programming Miguel A. Otaduy May 25, 2004.
Java: How to Program Methods Summary Yingcai Xiao.
COMP 110 Introduction to Programming Mr. Joshua Stough October 8, 2007.
Enhancing classes Visibility modifiers and encapsulation revisited
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP Introduction to Programming Adrian Ilie July 13, 2005.
Evan Korth New York University Computer Science I Classes and Objects Professor: Evan Korth New York University.
1 Chapter 2 Introductory Programs. 2 Getting started To create and run a Java program –Create a text file with a.java extension for the source code. For.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005.
COMP 110 Introduction to Programming Mr. Joshua Stough October 24, 2007.
Terms and Rules Professor Evan Korth New York University (All rights reserved)
28-Jun-15 Access to Names Namespaces, Scopes, Access privileges.
Liang, Introduction to Programming with C++, Second Edition, (c) 2010 Pearson Education, Inc. All rights reserved Chapter 9 Objects and Classes.
Defining Classes and Methods Chapter 4.1. Key Features of Objects An object has identity (it acts as a single whole). An object has state (it has various.
COMP More About Classes Yi Hong May 22, 2015.
Comp 248 Introduction to Programming Chapter 4 - Defining Classes Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia.
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "methods" in Java Purpose Reuse code Modularize the program This.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
1. 2 Reference... Student stu; Reference of Student stu When the reference is created it points to a null value. Before access the reference, objects.
 2005 Pearson Education, Inc. All rights reserved. 1 Methods Called functions or procedures in other languages Modularize programs by separating its tasks.
Java™ How to Program, 10/e © Copyright by Pearson Education, Inc. All Rights Reserved.
More About Objects and Methods Chapter 5. Outline Programming with Methods Static Methods and Static Variables Designing Methods Overloading Constructors.
Fall 2015CISC124 - Prof. McLeod1 CISC124 Have you filled out the lab section survey? (As of last night 54 left to fill out the survey.) TA names have been.
Loops (cont.). Loop Statements  while statement  do statement  for statement while ( condition ) statement; do { statement list; } while ( condition.
Defining Classes and Methods Chapter 4. Object-Oriented Programming Our world consists of objects (people, trees, cars, cities, airline reservations,
COP INTERMEDIATE JAVA Designing Classes. Class Template or blueprint for creating objects. Their definition includes the list of properties (fields)
Java methods Methods break down large problems into smaller ones Your program may call the same method many times saves writing and maintaining same code.
24-Dec-15 Class Structure. 2 Classes A class describes a set of objects The objects are called instances of the class A class describes: Fields (instance.
User Defined Methods Methods are used to divide complicated programs into manageable pieces. There are predefined methods (methods that are already provided.
Class and Method Definitions. UML Class Diagram Automobile - fuel: double - speed: double - license: String + increaseSpeed(double howHardPress): void.
Java Classes Chapter 1. 2 Chapter Contents Objects and Classes Using Methods in a Java Class References and Aliases Arguments and Parameters Defining.
Topic 8Classes, Objects and Methods 1 Topic 8 l Class and Method Definitions l Information Hiding and Encapsulation l Objects and Reference Classes, Objects,
Chapter 4Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapters 4 and 5: Excerpts l Class and Method Definitions l Information.
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
Department of Computer Engineering Methods Computer Programming for International Engineers.
Methods.
CPSC 233 Tutorial 5 February 9 th /10 th, Java Classes Each Java class contains a set of instance variables and methods Instance Variables: Type.
Lecture 9: Object and Classes Michael Hsu CSULA. 2 OO Programming Concepts Object-oriented programming (OOP) involves programming using objects. An object.
Functions + Overloading + Scope
Topic: Classes and Objects
Chapter 7 User-Defined Methods.
Suppose we want to print out the word MISSISSIPPI in big letters.
Introduction to Modular Programming
Class Structure 15-Jun-18.
Some Eclipse shortcuts
Yanal Alahmad Java Workshop Yanal Alahmad
Methods Chapter 6.
Namespaces, Scopes, Access privileges
Methods.
Class Structure 16-Nov-18.
Chapter 3 Introduction to Classes, Objects Methods and Strings
Defining Classes and Methods
An Introduction to Java – Part I, language basics
Class Structure 28-Nov-18.
Group Status Project Status.
Classes, Encapsulation, Methods and Constructors (Continued)
Class Structure 7-Dec-18.
Class Structure 2-Jan-19.
Namespaces, Scopes, Access privileges
Class Structure 25-Feb-19.
Object Oriented Programming in java
Classes, Objects and Methods
Presentation transcript:

Classes and Methods Computer Engineering Department Java Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2014

Defining Classes String name; Double weight; Char sex; class Baby Data declarations Method declarations A class contains data declarations (state) and method declarations (behaviors)

Why use classes?

A UML Class Diagram

Class – Object Instances

Constructors I Class instances are created with constructors Constructor name == the class name No return type – never returns anything Usually initialize fields All classes need at least one constructor If you don’t write one, defaults to There might be more than one constructors

Constructors II CLASSNAME () { CLASSNAME (){ } CLASSNAME ([arguments]){ …… } CLASSNAME obj1 = new CLASSNAME(); CLASSNAME obj1 = new CLASSNAME([arguments]);

Automobile Constructor Automobile(double f, double s, String l){ fuel=f; speed=s; license=l; } Default constructor – Automobile (){ }

Classes and Instances Using a Class Constructor to create an instance – Automobile ronsCar = new Automobile (2, 75, “351 WLF”) ronsCar.FieldName; ronsCar.METHODNAME([ARGUMENTS])

Class Files and Separate Compilation Each Java class definition should be in a file by itself. –The name of the file should be the same as the name of the class. –The file name should end in.java A Java class can be compiled before it is used in a program –The compiled byte code is stored in a file with the same name, but ending in.class If all the classes used in a program are in the same directory as the program file, you do not need to import them

Class Structure - in general

Packages Each class belongs to a package Classes in the same package serve a similar purpose Packages are just directories Classes in other packages need to be imported

Defining-Using Packages Package path.to.package.foo; Class Foo { } Using packages Import path.to.package.foo.Foo; Import path.to.package.foo.*; How about importing – Import path.to.*;

Why Packages Combine similar functionality – org.boston.libraries.Library – org.boston.libraries.Book Separate similar names – Shopping.list – Packing.List

Special Packages All classes “see” classes in the same package (no import needed) All classes “see” classes in java.lang Example: java.lang.String; java.lang.System

Methods A program that provides some functionality can be long and contains many statements A method groups a sequence of statements and should provide a well-defined, easy-to-understand functionality – a method takes input, performs actions, and produces output In Java, each method is defined within specific class

Method Declaration: Header A method declaration begins with a method header methodname returntype parameter list The parameter list specifies the type and name of each parameter The name of a parameter in the method declaration is called a formal argument class MyClass { static int min ( int num1, int num2 ) … properties

Method Declaration: Body The header is followed by the method body: static int min(int num1, int num2) { int minValue = num1 < num2 ? num1 : num2; return minValue; } class MyClass { … … }

Methods That Return a Value public int topla(int first, int second){ … retunt 5; // 5 is an int value } example int next = keyboard.nextInt(); – keyboard is the calling object.

Defining Methods That Return a Value example public int fiveFactorial(); { int factorial = 5*4*3*2*1; return factorial; } As before, the method definition consists of the method heading and the method body. –The return type replaces void.

Methods That Do Not Return a Value public void merhabaDE(String mesaj){ System.out.println(“Merhaba ”+msj); } The method invocation is a Java statement that produces the action(s) specified in the method definition. –It is as if the method invocation were replaced by the statements and declarations in the method definition.

void Method Definitions Example public void writeOuput(){ System.out.println(“Name: “ + name); System.out.println(“Age: “ + age); } Such methods are called void methods.

Calling a Method Each time a method is called, the values of the actual arguments in the invocation are assigned to the formal arguments static int min (int num1, int num2) { int minValue = (num1 < num2 ? num1 : num2); return minValue; } int num = min (2, 3);

Method Control Flow A method can call another method, who can call another method, … min(num1, num2, num3) println() …println(…) min(1, 2, 3); main

25 Method Overloading A class may define multiple methods with the same name- --this is called method overloading – usually perform the same task on different data types Example: The PrintStream class defines multiple println methods, i.e., println is overloaded: println (String s) println (int i) println (double d) … The following lines use the System.out.print method for different data types: System.out.println ("The total is:"); double total = 0; System.out.println (total);

26 Method Overloading: Signature The compiler must be able to determine which version of the method is being invoked This is by analyzing the parameters, which form the signature of a method – the signature includes the type and order of the parameters if multiple methods match a method call, the compiler picks the best match if none matches exactly but some implicit conversion can be done to match a method, then the method is invoke with implicit conversion. – the return type of the method is not part of the signature

Method Overloading double tryMe (int x) { return x +.375; } Version 1 double tryMe (int x, double y) { return x * y; } Version 2 result = tryMe (25, 4.32)Invocation

More Examples double tryMe ( int x ) { return x + 5; } double tryMe ( double x ) { return x *.375; } double tryMe (double x, int y) { return x + y; } tryMe( 1 ); tryMe( 1.0 ); tryMe( 1.0, 2); tryMe( 1, 2); tryMe( 1.0, 2.0); Which tryMe will be called?

Static Types and Methods NOT unique for each instance They belong to the class, not specific objects of that class. An example from the java API is Math, all the variables are static. Example case: – Keep track of the number of babies that have been made

Static Methods Some methods have no meaningful connection to an object. For example, –finding the maximum of two integers –computing a square root –converting a letter from lowercase to uppercase –generating a random number Such methods can be defined as static.

Static Method

Static Methods, cont. A static method is still defined as a member of a class. But, the method is invoked using the class name rather than an object name. syntax return_Type Variable_Name = Class_Name.Static_Method_Name (Parameters);

Using an Object to Call a Static Method An object of the class can be used to call a static method of the class even though it is more common to use the class name to call the static method. You cannot invoke a nonstatic method within a static method unless you create and use a calling object for the nonstatic method.

Scope

Local Variables A variable declared within a method is called a local variable. –Its meaning is “local to” (confined to) the method definition. Variables with the same name declared within different methods are different variables. A local variable exists only as long as the method is active.

Blocks Variables The terms block and compound statement both refer to a set of Java statements enclosed in braces {}. A variable declared within a block is local to the block. –When the block ends, the variable disappears. If you intend to use the variable both inside and outside the block, declare it outside the block.

Variables in for Statements The loop control variable can be declared outside the for statement int n; for (n = 1; n <10, n++) in which case the variable n still exists when the for statement ends The loop control variable can be declared inside the for statement for (int n = 1; n <10, n++) in which case the variable n ceases to exist when the for statement ends

Class Scope I

Class Scope II

Scope Just like methods, variables are accessible inside {} Void method(int arg1){ int arg2 = arg1 + 1; } Class Example{ int memberVariable; void setVariable(int newVal) { memberVariable += newVal; }

Only method-level ‘servings’ variable is updated

‘this’ keyword Clarifies scope Means ‘my object’ Usage: Class Example{ int memberVariable; void setVariable(int newVal) { this.memberVariable += newVal; }

Object-level ‘servings’ is updated

Setters and Getters Methods in Class For the attribute called name – Getter method is getName – Setter method is setName Getter access-get the value of attribute Setter sets-change the value of the attribute

Primitives vs References Primitive types are basic java types – int, long, double, boolean, char, short, byte, float – The actual values are stored in the variable Reference types are arrays and objects – String, int[], Baby, Automobile

How java stores primitives Variables: – Variables are like fixed size cups – Primitives are small enough that they just fit into the cup

How Java Stores primitives and Objects Objects: – Objects are too big to fit in a variable – Stored somewhere else – Variable stores a number that locates the object – The object’s location is called a reference – == compares the references

Exercises for scopes

Does it run? class Main { int klm; public static void main(String args[]) { System.out.println("klm: " + klm); } class Main { int klm; public static void main(String args[]) { Main m = new Main(); System.out.println("klm: " + m.klm); }

Does it run? class Main { int klm; public static void main(String args[]) { int klm; Main m = new Main(); System.out.println("klm: " + klm); } class Main { int [] klm = new int[5]; public static void main(String args[]) { Main m = new Main(); System.out.println("klm: " + m.klm[0]); }

Does it run? class Main { String [] klm = new String[5]; public static void main(String args[]) { Main m = new Main(); System.out.println("klm: " + m.klm[0]); } for(int i=0; i<5; i++){ System.out.println("i: "+i); } System.out.println("i: "+i);

Does it run? int i; for(int i=0; i<5; i++){ System.out.println("i: "+i); } System.out.println("i: "+i); int i; for(i=0; i<5; i++){ System.out.println("i: "+i); } System.out.println("i: "+i);