java fundamentals, part 1mccreedy/senseneyj_public_html/classes/... · medical image processing,...

31
Java Fundamentals, Part 1 1 http://mipav.cit.nih.gov

Upload: others

Post on 19-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Java Fundamentals, Part 1

1

http://mipav.cit.nih.gov

Page 2: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

2

MIPAV Team

Employees

Ruida Cheng

William Gandler

Matthew McAuliffe

Evan McCreedy

Justin Senseney

Fellows

Sara Shen

Contractors

Alexandra Bokinsky, Geometric Tools Inc. (Visualization)

Olga Vovk, SRA International Inc. (Technical Writing)

Alumni

Paul Hemler, Agatha Munzon, Nishith Pandya,

David Parsons, Beth Tyriee, Hailong Wang

Page 3: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Medical Image Processing,

Analysis & Visualization

&

JAVA

3

Justin Senseney

[email protected]

Biomedical Imaging Research Services Section (BIRSS)

Imaging Sciences Laboratory

Division of Computational Bioscience

Center for Information Technology

(301) 594-5887

http://mipav.cit.nih.gov

http://dcb.cit.nih.gov/~senseneyj

Page 4: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Mipav Interface

4

•Interface to Java

•Interface to image processing libraries

Page 5: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Java Steps

5

•Methods

•Comments

•Printing

•Data types

•Equality

•If

•Loops

•Switch

Page 6: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Method

6

private void init() {

setForeground(Color.black);

setTitle("Generic Plugin 5.4.2");

try {

setIconImage(MipavUtil.getIconImage("divinci.gif"));

} catch (FileNotFoundException e) {

Preferences.debug("Failed to load default icon", Preferences.DEBUG_MINOR

}

……

Visibility

Return type

Page 7: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Comments (1)

7

private void init() {

setForeground(Color.black);

/*setTitle("Generic Plugin 5.4.0");

try {

setIconImage(MipavUtil.getIconImage("divinci.gif"));

} catch (FileNotFoundException e) {

Preferences.debug("Failed to load default icon", Preferences.DEBUG_MINOR

}*/

……

Page 8: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Comments (2)

8

private void init() {

//setForeground(Color.black);

setTitle("Generic Plugin 5.4.2");

try {

setIconImage(MipavUtil.getIconImage("divinci.gif"));

} catch (FileNotFoundException e) {

Preferences.debug("Failed to load default icon", Preferences.DEBUG_MINOR

}

……

CTRL+shift+C when all lines are highlighted

Page 9: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Print data

9

private void init() {

System.out.println(“Hello world”);

……

Shown in console

Page 10: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Data types

10

private void init() {

int a = 16;

double b = 16.0;

String str = " test ";

boolean isEqual = false;

System.out.println(a+str+isEqual);

Page 11: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Equality

11

private void init() {

int a = 123;

int b = 321;

boolean isEqual = (a == b);

boolean isEqual2 = (a != b);

System.out.println("A: "+a + "B: " + b + isEqual + isEqual2);

Page 12: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Usability

12

private void init() {

String str = " test ";

String str2 = " te2st ";

boolean isEqual = (str == str2); //Are these two equal?

boolean isEqual2 = (str != str2); //Are these two different?

System.out.println(str+str2+" Equal: "+isEqual+" Not equal: "+isEqual2);

Page 13: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Review

• Method

• Comments

• Print data

• Data types

• Equality

13

Page 14: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Method – make your own

14

private int myAddMethod(int initial) {

initial = initial + 1;

return initial;

}

private void init() {

int a = 10;

int b = myAddMethod(a);

System.out.println("A: "+a+" B: "+b);

Visibility Return type Input

Page 15: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

If statement

15

private int myAddMethod(int initial) {

if(initial < 10) {

initial = initial + 1;

} else {

initial = initial + 2;

}

return initial;

}

Page 16: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Else If statement

16

private int myAddMethod(int initial) {

if(initial < 10) {

initial = initial + 1;

} else if(initial >= 10) {

initial = initial + 2;

}

return initial;

}

Page 17: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

While loop

17

private int myAddMethod(int initial) {

while(initial < 100) {

initial = initial + 1;

}

return initial;

}

Boolean ending condition

Page 18: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

For loop

18

private int myAddMethod(int initial) {

for(int i=initial; i < 100; i++) {

System.out.println(i);

}

return initial;

}

Loop’s private variable

Page 19: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

For loop

19

private int myAddMethod(int initial) {

for(int i=initial; i < 100; i++) {

System.out.println(i);

}

return initial;

}

Action occurs at end of each iteration

Page 20: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

For loop

20

private int myAddMethod(int initial) {

for(int i=initial; i < 100; i++) {

System.out.println(i);

}

return initial;

}

Boolean variable checked before each iteration

Page 21: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

For loop quiz

21

private int myAddMethod(int initial) {

for(int i=initial; i < 100; i++) {

initial = initial + i;

}

return initial;

}

Given initial = 10

What is final value of initial?

Page 22: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Switch/case

22

private int myAddMethod(int initial) {

switch(initial) {

case 1:

case 2:

case 3:

initial = 4;

break;

default:

initial = initial+1;

break;

}

return initial;

}

Break shows to exit switch

Page 23: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Review

• Creating methods

• If/Else if

• While

• For

• Switch/case

23

Page 24: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Quiz 1 - Evaluate

24

private boolean myMethod(int initial) {

if(initial < 100) {

return true;

} else {

return false;

}

}

private void init() {

boolean a = myMethod(99);

System.out.println(a);

System.out.println(myMethod(101));

System.out.println(myMethod(100));

Page 25: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Quiz 2 - Evaluate

25

private int myMethod(int initial) {

int done = 0;

for(int i=0; i<=initial; i++) {

done = done + i;

}

return done;

}

private void init() {

System.out.println(myMethod(10));

System.out.println(myMethod(0));

System.out.println(myMethod(-1));

Page 26: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Quiz 3 - Evaluate

26

private int myMethod(int initial) {

if(initial < 0) {

return 0;

} else {

return initial+myMethod(initial-1);

}

}

private void init() {

System.out.println(myMethod(1));

System.out.println(myMethod(2));

System.out.println(myMethod(10));

System.out.println(myMethod(-1));

Page 27: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Task - Write

27

• Method to compute average of two numbers

• Method to print out whether a number is even

• Method with infinite loop

Page 28: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Summary

• Java primitive types

• Java loops

• Java methods

• Fundamentals

28

Page 29: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

Next time

• Java arrays

• Java API

• MIPAV API

29

Page 30: Java Fundamentals, Part 1mccreedy/senseneyj_public_html/classes/... · Medical Image Processing, Analysis & Visualization & JAVA 3 Justin Senseney SenseneyJ@mail.nih.gov Biomedical

30

Visualization

File reader Quantification

File writer

Processing Macros