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

481 lines
7.4 KiB
Plaintext
Raw Permalink Normal View History

2024-08-31 02:13:09 -05:00
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