Lecture 5
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4760847/Java.png)
Fall 2018
Narges Norouzi
Recap
- break & continue keywords
- 1-D arrays
- 2-D arrays - more to come today
Multi-dimensional Arrays
2D array or Array of Arrays
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789942/multi-array.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789940/multi-example.png)
Demo
Matrix Addition
Rows by columns or columns by rows
-
Consider int[][] m = new int[3][4];
-
Is that 3 rows by 4 columns or 3 columns by 4 rows?
-
The answer is that it can be either
-
As long as you are consistent with your column/row placement
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789938/array1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789937/array_2.png)
Rows by columns or columns by rows
- This makes it 3 columns by 4 rows
- This makes it 3 rows by 4 columns
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789936/rc.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789934/cr.png)
Jagged Array
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789939/jagged.png)
Jagged Array
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789931/jaggedcode.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789930/a1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789929/a2.png)
Explicit Initialization
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4789932/explicit.png)
Methods
Methods
-
A method is like a machine
-
Zero or more inputs
-
Zero or one output
-
Other names:
-
Function
-
Procedure
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813216/method.png)
Applications
-
Scientists use mathematical functions to calculate formulas.
-
Programmers use functions to build modular programs.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813215/function.jpg)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813214/example_method.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813212/method_retunr.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813210/return_type.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813211/example_name.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813207/method_name.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813208/method_parameters.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813205/parameters.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813204/local_variable_method.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813201/local_variable.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813203/return_statement_method.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813199/return_statement.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813196/method_body_method.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813198/method_body.png)
Flow of control
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813197/flow.png)
flow of control
-
What happens when a function is called:
-
Control transfers to the function code.
-
Argument variables are assigned the values given in the call.
-
Function code is executed.
-
Return value is assigned in place of the function
name in calling code.
-
Control transfers back to the calling code. This is known as "pass by value”.
break
Scope
-
Scope (of a variable):
-
The code that can refer to that variable.
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813320/scope_of_a_variable.png)
Example
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813195/scope.png)
Memory management in stack
- What happens in memory when we call functions?
-
What happens in memory when we define variables?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813193/method1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813191/method2.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813192/method3.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813190/method4.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813189/methof5.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813186/method6.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813188/method7.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813185/method8.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813182/method9.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813181/method10.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813178/method11.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813179/method12.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/853852/images/4813176/method13.png)
Zybooks chapters we covered
- Chapter 5 section 5.9
-
Chapter 6:
- section 6.1
- section 6.2
- section 6.3
- section 6.4
- section 6.6
- section 6.7
Copy of CMPS12A - Lecture 5
By Narges Norouzi
Copy of CMPS12A - Lecture 5
- 141