college/Summer-2024/CS-3443/Slides/txt/04_Java-Best-Practices.txt

481 lines
7.4 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Application
Programming
Hend Alkittawi
More on Java Classes
Best practices for Creating Java
Classes
BEST PRACTICES FOR CREATING JAVA CLASSES
STYLE
- identifier naming
- indentation
CONSTRUCTORS
- Ways to instantiate
objects
METHODS
- getters and setters
- equals()
- toString()
JAVADOC
- “special” Java
documentation
STYLE
visibility
type
class name
public class MyClass {
// attributes
private int intVar;
visibility
type
variable name
// methods
public void myMethod(String myString){
visibility
}
}
return
type
method
name
parameter parameter
type
name
METHODS
-
The syntax (rules) for declaring a method
visibility returnType methodName(parameterList)
-
visibility determines access
-
-
returnType is the type of data this method returns
-
-
public (all can access) or private (just this class can access)
if nothing is returned, use the keyword void
methodName starts with a lowercase word
-
it uses uppercase for the first letter of each additional word
(this is called “camel case”)
-
parameterList is any data we need to pass to the method
-
The ordering must be followed exactly
METHODS
-
Getter and setter methods are used to get and set the
value of the attributes.
-
Getters retrieve the value only
-
Setters update the value only
public class Account {
private double balance;
private String name;
public void setBalance( double balance ){
this.balance = balance;
}
public double getBalance(){
return this.balance;
}
// add a getter and a setter for name
}
● to use the class and its methods
public static void main(String[] args){
Account myAccount = new Account();
myAccount.setBalance(1000.0);
double balance = myAccount.getBalance();
}
METHODS
-
toString() method returns a String representation of objects.
An example of a toString() method for the Account class:
public class Account {
private double balance;
private String name;
public void setBalance( double balance ){
this.balance = balance;
}
public double getBalance() {
return this.balance;
}
// … getter and a setter for name
public String toString() {
return "Account info: name: " + name
+ " with balance: " + balance;
}
}
● to use the class and its methods
public static void main(String[] args){
Account myAccount = new Account();
myAccount.setName("Sam Adams");
myAccount.setBalance(1000.0);
System.out.println( myAccount );
}
METHODS
-
equals() method provides a way for users to compare instances
of your object to other instances. This also gives you control
over what is relevant to differentiate your objects.
-
● to use the class and its methods
private double balance;
private String name;
public static void main(String[] args){
Account myAccount = new Account();
Account yourAccount = new Account();
myAccount.setName(“Mia”);
myAccount.setBalace(10);
yourAccount.setName(“Ken”);
yourAccount.setBalance(100);
boolean check =
myAccount.equals(yourAccount);
}
public class Account {
public void setBalance( double balance ) {
this.balance = balance; }
public double getBalance() {
return this.balance; }
public String toString() {
return "Account info: name: " + name
+ " with balance: " + balance; }
public boolean equals( Account account2 ) {
return this.getName().equals( account2.getName());}
}
IMPORTANT
== is used for primitive types only
Objects define an object-method called equals()
2 == 5
objA.equals(objB);
Core: Drawing Memory Models with Objects - Memory Models, Scope,
and Starting the Project | Coursera
public class Account {
private double balance;
private String name;
public void setBalance( double balance ) {
this.balance = balance; }
public void setName( String name ) {
this.name = name; }
yourAccount
myAccount
name
name
balance
balance
public double getBalance() {
return this.balance; }
public String getName() {
return this.name; }
public boolean equals( Account account2 ) {
return this.getName().equals( account2.getName());
}
public String toString() {
return "Account info: name: " + name
+ " with balance: " + balance; }
}
public static void main(String[] args){
Account myAccount = new Account();
Account yourAccount = new Account();
myAccount.setName("Mia");
myAccount.setBalace(10);
yourAccount.setName("Ken");
yourAccount.setBalance(100);
boolean check =
myAccount.equals(yourAccount);
}
CONSTRUCTORS
-
Java requires a constructor call for every object that is created.
-
The keyword new creates a new object of a specified class by
calling a constructor.
-
A constructor is similar to a method but is called implicitly by
the new operator to initialize an objects instance variables when
the object is created.
-
In any class that does not explicitly declare a constructor, the
compiler provides a default constructor (which always has no
parameters).
-
When a class has only the default constructor, the classs
instance variables are initialized to their default value.
METHODS
-
You can provide your own constructor to specify custom
initialization for objects of your class.
-
A constructor must have the same name as the class.
-
If you declare a constructor for a class, the compiler will
not create a default constructor that class.
public
class Account {
private double balance;
private String name;
public Account( String name, double balance ){
this.name = name;
this.balance = balance;
}
/* … rest of class … */
}
● to use the class and its methods
public static void main(String[] args){
Account myAccount = new Account("Sam", 1000);
Account yourAccount = new Account("Jane", 2000);
}
JAVA GARBAGE COLLECTION
-
More than one variable may refer to the same data.
-
Java will clear out old data that no variables are referencing
-
-
This is known as garbage collection
Garbage collection is the process through which Java will
eventually clear out old data that no variables are
referencing.
JAVADOC
-
Javadoc comments are delimited between /** and */.
-
Javadoc comments enable you to embed program documentation
directly in your programs.
-
Javadoc utility program reads Javadoc comments and uses them
to prepare program documentation in HTML web-page format.
/**
* This is a Javadoc comment!
*/
JAVADOC
-
Javadoc comments annotations:
-
@author: designates the author of the code, belongs in the
class comment
-
@param: designates the parameter to a method, belongs in all
method comments which require parameters
-
@return: designates the returned value of a method, belongs in
method comments which return values
JAVADOC
Jav
ine
til t
l
u
M
men
Com
/**
* The Account class represents a bank account.
* @author CS3443
*/
public class Account {
/* attributes here .. a multi-line comment starts with /* .. be careful! */
/**
* sets the account balance
* @param balance, the account balance (double)
*/
public void setBalance(double balance){
this.balance = balance;
}
doc
a
Jav
c
ado
}
/**
* returns the balance for the account
* @return double, the account balance
*/
public double getBalance(){
return balance;
}
JAVADOC
-
To generate Javadoc in Eclipse
1.
Project > Generate Javadoc
2.
Destination: workspace/your_project/doc
3.
Next
4.
Select all “referenced archives and projects”
5.
Finish > Yes To All
6.
Open index.html
Project > Generate Javadoc
Destination:workspace/your_project/doc
> Next
Select all
> Finish
Yes To All
Open index.html
CODE DEMO
-
Create a Java class
following the best
practices
-
Generate Javadocs
DO YOU HAVE ANY
QUESTIONS?
THANK
YOU!
@
hend.alkittawi@utsa.edu
By Appointment
Online