220 likes | 315 Views
CSE115: Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall 645-4739 alphonce@buffalo.edu. Agenda. Announcements Cell phones / laptops off & away / Name signs out Last time Composition relationship Lifetime/Scope Today Unified Modeling Language (UML) composition
E N D
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall 645-4739 alphonce@buffalo.edu
Agenda • Announcements • Cell phones / laptops off & away / Name signs out • Last time • Composition relationship • Lifetime/Scope • Today • Unified Modeling Language (UML) • composition • Naming conventions • Methods
whole/part creation in code(elaborated) • Whole creates instance of part in its constructor • In Java code, involves 3 changes to whole class: • Declaration of instance variable of part type • Instantiation of part class in whole class constructor • Assignment of new part instance to instance variable
Dog – Tail example in Java package cse115; public class Dog { private Tail _tail; public Dog() { _tail = new Tail(); } }
UML Unified Modeling Language (Class Diagrams)
UML • Unified Modeling Language • express design without reference to an implementation language • For example
Binary Class Relationships:directional • binary two classes are involved • source class has code modification • target class does not • composition • source: WHOLE • target: PART • in diagram: • line decoration is on source/WHOLE • show only detail that’s needed/desired
package cse115; public class Dog { public Dog() { } } package cse115; public class Tail { public Tail() { } }
package cse115; public class Dog { private Tail _tail; public Dog() { _tail = new Tail(); } } package cse115; public class Tail { public Tail() { } }
Naming conventions • packages: all lower case • classes: • first character: upper case letter • camel case afterwards • instance variables • first character: underscore ‘_’ • camel case afterwards • local variables • first character: lower case • camel case afterwards
Constructor definition package lab2; public class EcoSystem { private example1.Terrarium _t; public EcoSystem() { _t = new example1.Terrarium(); } public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); } } Method definition
The scope of an instance variable declaration is the entire class body. The variable can (and should) be assigned an initial value (initialized) in… The variable can be used in any method of the class. Here’s a method definition. Both the constructor and this method are in the scope of the instance variable declaration. The instance variable can (and should) be assigned an initial value (initialized) in… the constructor. It can be used in any method in class body. package lab2; public class EcoSystem { private example1.Terrarium _t; public EcoSystem() { _t = new example1.Terrarium(); } public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); } }
Method definition syntax method definition public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax • Remember that method definition consists of both a method header a method body. public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax • Here’s the method body. public void addTwoCaterpillars(){ example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax • The method header begins with an access control modifier, public in this case. public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax return type specification ‘void’ is a special return type specification, indicating that no value is returned by the method public voidaddTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax Next comes the name of the method. Method names follow the same convention as local variables public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax parameter list – empty in this example remember: argument list method call parameter list method definition public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax method body – delimited by braces public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }
Method definition syntax • statements & (local variable) declarations – consists of local variable declarations and statements, which in this case are all method calls. public void addTwoCaterpillars() { example1.Caterpillar c1 = new example1.Caterpillar(); example1.Caterpillar c2 = new example1.Caterpillar(); _t.add(c1); _t.add(c2); c1.start(); c2.start(); }