SlideShare a Scribd company logo
Using Objects and Classes
Defining Simple Classes
Objects and Classes
Software University
http://softuni.bg
SoftUni Team
Technical Trainers
Table of Contents
1. Objects
2. Classes
3. Built in Classes
4. Defining Simple Classes
 Fields
 Constructors
 Methods
sli.do
#fund-java
Have a Question?
Objects and Classes
Objects
 An object holds a set of named values
 E.g. birthday object holds day, month and year
 Creating a birthday object:
5
Birthday
day = 27
month = 11
year = 1996
LocalDate birthday =
LocalDate.of(2018, 5, 5);
System.out.println(birthday);
Create a new object of
type LocalDate
Object
fields
Object
name
Classes
 In programming classes provide the structure for objects
 Act as a blueprint for objects of the same type
 Classes define:
 Fields (private variables), e.g. day, month, year
 Getters/Setters, e.g. getDay, setMonth, getYear
 Actions (behavior), e.g. plusDays(count),
subtract(date)
 Typically a class has multiple instances (objects)
 Sample class: LocalDate
 Sample objects: birthdayPeter, birthdayMaria
6
Objects - Instances of Classes
 Creating the object of a defined class is
called instantiation
 The instance is the object itself, which is
created runtime
 All instances have common behaviour
7
LocalDate date1 = LocalDate.of(2018, 5, 5);
LocalDate date2 = LocalDate.of(2016, 3, 5);
LocalDate date3 = LocalDate.of(2013, 3, 2);
Classes vs. Objects
 Classes provide structure for
creating objects
 An object is a single
instance of a class
8
class
LocalDate
day: int
month: int
year: int
plusDays(…)
minusDays(…)
Class actions
(methods)
Class name
Class fields
object
birthdayPeter
day = 27
month = 11
year = 1996
Object
name
Object
data
Using the Built-In API Classes
Math, Random, BigInteger ...
 Java provides ready-to-use classes:
 Organized inside Packages like:
java.util.Scanner, java.utils.List, etc.
 Using static class members:
 Using non-static Java classes:
Built-In API Classes in Java
10
LocalDateTime today = LocalDateTime.now();
double cosine = Math.cos(Math.PI);
Random rnd = new Random();
int randomNumber = rnd.nextInt(99);
 You are given a list of words
 Randomize their order and print each word on a separate line
Problem: Randomize Words
11Check your solution here: https://judge.softuni.bg/Contests/1319/
Note: the output is a sample.
It should always be different!
a b
b
a
PHP Java C#
Java
PHP
C#
Solution: Randomize Words
12
Scanner sc = new Scanner(System.in);
String[] words = sc.nextLine().split(" ");
Random rnd = new Random();
for (int pos1 = 0; pos1 < words.length; pos1++) {
int pos2 = rnd.nextInt(words.length);
//TODO: Swap words[pos1] with words[pos2]
}
System.out.println(String.join(
System.lineSeparator(), words));
Check your solution here: https://judge.softuni.bg/Contests/1319/
 Calculate n! (n factorial) for very big n (e.g. 1000)
Problem: Big Factorial
13
50
3041409320171337804361260816606476884437764156
8960512000000000000
5 120 10 3628800 12 479001600
88
1854826422573984391147968456455462843802209689
4939934668442158098688956218402819931910014124
4804501828416633516851200000000000000000000
Check your solution here: https://judge.softuni.bg/Contests/1319/
Solution: Big Factorial
14
import java.math.BigInteger;
...
int n = Integer.parseInt(sc.nextLine());
BigInteger f = new BigInteger(String.valueOf(1));
for (int i = 1; i <= n; i++) {
f = f.multiply(BigInteger
.valueOf(Integer.parseInt(String.valueOf(i))));
}
System.out.println(f);
Use the
java.math.BigInteger
N!
Check your solution here: https://judge.softuni.bg/Contests/1319/
Defining Classes
Creating Custom Classes
 Specification of a given type of objects
from the real-world
 Classes provide structure for describing
and creating objects
Defining Simple Classes
16
class Dice {
…
}
Class name
Class body
Keyword
Naming Classes
 Use PascalCase naming
 Use descriptive nouns
 Avoid abbreviations (except widely known, e.g. URL,
HTTP, etc.)
17
class Dice { … }
class BankAccount { … }
class IntegerCalculator { … }
class TPMF { … }
class bankaccount { … }
class intcalc { … }
 Class is made up of state and behavior
 Fields store values
 Methods describe behaviour
Class Members
18
class Dice {
private int sides;
public void roll() { … }
}
Field
Method
 Store executable code (algorithm)
Methods
19
class Dice {
public int sides;
public int roll() {
Random rnd = new Random();
int sides = rnd.nextInt(this.sides + 1);
return sides;
}
}
Getters and Setters
20
class Dice {
. . .
public int getSides() { return this.sides; }
public void setSides(int sides) {
this.sides = sides;
}
public String getType() { return this.type; }
public void setType(String type) {
this.type = type;
}
}
Getters & Setters
 A class can have many instances (objects)
Creating an Object
21
class Program {
public static void main(String[] args) {
Dice diceD6 = new Dice();
Dice diceD8 = new Dice();
}
}
Use the new
keyword
Variable stores a
reference
 Special methods, executed during object creation
Constructors
22
class Dice {
public int sides;
public Dice() {
this.sides = 6;
}
}
Overloading default
constructor
Constructor name is
the same as the name
of the class
 You can have multiple constructors in the same class
Constructors (2)
23
class Dice {
public int sides;
public Dice() { }
public Dice(int sides) {
this.sides = sides;
}
}
class StartUp {
public static void main(String[] args) {
Dice dice1 = new Dice();
Dice dice2 = new Dice(7);
}
}
 Read students until you receive "end" in the following format:
 "{firstName} {lastName} {age} {hometown}"
 Define a class Student, which holds the needed information
 If you receive a student which already exists (matching
firstName and lastName), overwrite the information
 After the end command, you will receive a city name
 Print students which are from the given city in the format:
"{firstName} {lastName} is {age} years old."
Problem: Students
24
Solution: Students (1)
25
public Student(String firstName, String lastName,
int age, String city){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.city = city;
// TODO: Implement Getters and Setters
}
Solution: Students (2)
26
List<Student> students = new ArrayList<>();
String line;
while (!line.equals("end")) {
// TODO: Extract firstName, lastName, age, city from the input
Student existingStudent = getStudent(students, firstName, lastName);
if(existingStudent != null) {
existingStudent.setAge(age);
existingStudent.setCity(city);
} else {
Student student = new Student(firstName, lastName, age, city);
students.add(student);
}
line = sc.nextLine();
}
Solution: Students (3)
27
static Student getStudent(List<Student> students, String firstName,
String lastName) {
for (Student student : students){
if(student.getFirstName().equals(firstName)
&& student.getLastName().equals(lastName))
return student;
}
return null;
}
Live Exercises
 …
 …
 …
Summary
 Classes define templates for object
 Fields
 Constructors
 Methods
 Objects
 Hold a set of named values
 Instance of a class
 https://softuni.bg/courses/programming-fundamentals
SoftUni Diamond Partners
SoftUni Organizational Partners
 Software University – High-Quality Education and
Employment Opportunities
 softuni.bg
 Software University Foundation
 http://softuni.foundation/
 Software University @ Facebook
 facebook.com/SoftwareUniversity
 Software University Forums
 forum.softuni.bg
Trainings @ Software University (SoftUni)
 This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons Attribution-NonCom
mercial-ShareAlike 4.0 International" license
License
34

More Related Content

PPTX
Java Foundations: Lists, ArrayList<T>
Svetlin Nakov
 
PPTX
Java Foundations: Maps, Lambda and Stream API
Svetlin Nakov
 
PPTX
Java Foundations: Objects and Classes
Svetlin Nakov
 
PPTX
Java Foundations: Arrays
Svetlin Nakov
 
PDF
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
Edureka!
 
PPT
Method overriding
Azaz Maverick
 
PDF
What is Dictionary In Python? Python Dictionary Tutorial | Edureka
Edureka!
 
PPT
Java Collections Framework
Sony India Software Center
 
Java Foundations: Lists, ArrayList<T>
Svetlin Nakov
 
Java Foundations: Maps, Lambda and Stream API
Svetlin Nakov
 
Java Foundations: Objects and Classes
Svetlin Nakov
 
Java Foundations: Arrays
Svetlin Nakov
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
Edureka!
 
Method overriding
Azaz Maverick
 
What is Dictionary In Python? Python Dictionary Tutorial | Edureka
Edureka!
 
Java Collections Framework
Sony India Software Center
 

What's hot (20)

PPTX
Time and Space Complexity Analysis.pptx
dudelover
 
PPT
Exception Handling
Sunil OS
 
PPT
C++ oop
Sunil OS
 
PPTX
16. Java stacks and queues
Intro C# Book
 
PPTX
Java 8 Lambda and Streams
Venkata Naga Ravi
 
PPT
Stacks & Queues By Ms. Niti Arora
kulachihansraj
 
PPTX
17. Java data structures trees representation and traversal
Intro C# Book
 
PPTX
18. Java associative arrays
Intro C# Book
 
PPTX
Java Foundations: Basic Syntax, Conditions, Loops
Svetlin Nakov
 
PPT
Java Input Output and File Handling
Sunil OS
 
PDF
Polymorphism in Java
Java2Blog
 
PPTX
Arrays in java
Arzath Areeff
 
ODP
Introduction to Java 8
Knoldus Inc.
 
PDF
Functional programming
ijcd
 
PPTX
Python - Data Structures
NR Computer Learning Center
 
PPTX
Java interface
Md. Tanvir Hossain
 
PDF
Java Generics - by Example
CodeOps Technologies LLP
 
PPTX
Inheritance
Sapna Sharma
 
Time and Space Complexity Analysis.pptx
dudelover
 
Exception Handling
Sunil OS
 
C++ oop
Sunil OS
 
16. Java stacks and queues
Intro C# Book
 
Java 8 Lambda and Streams
Venkata Naga Ravi
 
Stacks & Queues By Ms. Niti Arora
kulachihansraj
 
17. Java data structures trees representation and traversal
Intro C# Book
 
18. Java associative arrays
Intro C# Book
 
Java Foundations: Basic Syntax, Conditions, Loops
Svetlin Nakov
 
Java Input Output and File Handling
Sunil OS
 
Polymorphism in Java
Java2Blog
 
Arrays in java
Arzath Areeff
 
Introduction to Java 8
Knoldus Inc.
 
Functional programming
ijcd
 
Python - Data Structures
NR Computer Learning Center
 
Java interface
Md. Tanvir Hossain
 
Java Generics - by Example
CodeOps Technologies LLP
 
Inheritance
Sapna Sharma
 
Ad

Similar to 11. Java Objects and classes (20)

PDF
Lecture3.pdf
SakhilejasonMsibi
 
PPTX
14. Java defining classes
Intro C# Book
 
PPT
Defining classes-and-objects-1.0
BG Java EE Course
 
PPTX
Java-U1-C_1.2.pptx its all about the java
delta210210210
 
PPTX
11. Objects and Classes
Intro C# Book
 
PDF
Java for android developers
Aly Abdelkareem
 
PDF
Built-in Classes in JAVA
Mahmoud Ali Ibrahim
 
PDF
Lecture 1 - Objects and classes
Syed Afaq Shah MACS CP
 
PPT
Java căn bản - Chapter13
Vince Vo
 
PPT
Chapter 13 - Inheritance and Polymorphism
Eduardo Bergavera
 
PDF
Basic program in java
Sudeep Singh
 
PPTX
ICOM4015 CIIC4010 Exam Review #1
Harry Hernández Rivera
 
PDF
LECTURE 4 CLASSES AND OBJECTS.pdf
ShashikantSathe3
 
PPTX
Advance example of Classes and object and programming with case study
MsPariyalNituLaxman
 
PDF
03_Objects and Classes in java.pdf
Parameshwar Maddela
 
PPTX
AP computer barron book ppt AP CS A.pptx
KoutheeshSellamuthu
 
PPT
Core Java
Khasim Saheb
 
PPT
Corejava Training in Bangalore Tutorial
rajkamaltibacademy
 
PPTX
05. Java Loops Methods and Classes
Intro C# Book
 
PPTX
Lecture 4
talha ijaz
 
Lecture3.pdf
SakhilejasonMsibi
 
14. Java defining classes
Intro C# Book
 
Defining classes-and-objects-1.0
BG Java EE Course
 
Java-U1-C_1.2.pptx its all about the java
delta210210210
 
11. Objects and Classes
Intro C# Book
 
Java for android developers
Aly Abdelkareem
 
Built-in Classes in JAVA
Mahmoud Ali Ibrahim
 
Lecture 1 - Objects and classes
Syed Afaq Shah MACS CP
 
Java căn bản - Chapter13
Vince Vo
 
Chapter 13 - Inheritance and Polymorphism
Eduardo Bergavera
 
Basic program in java
Sudeep Singh
 
ICOM4015 CIIC4010 Exam Review #1
Harry Hernández Rivera
 
LECTURE 4 CLASSES AND OBJECTS.pdf
ShashikantSathe3
 
Advance example of Classes and object and programming with case study
MsPariyalNituLaxman
 
03_Objects and Classes in java.pdf
Parameshwar Maddela
 
AP computer barron book ppt AP CS A.pptx
KoutheeshSellamuthu
 
Core Java
Khasim Saheb
 
Corejava Training in Bangalore Tutorial
rajkamaltibacademy
 
05. Java Loops Methods and Classes
Intro C# Book
 
Lecture 4
talha ijaz
 
Ad

More from Intro C# Book (20)

PPTX
Java Problem solving
Intro C# Book
 
PPTX
21. Java High Quality Programming Code
Intro C# Book
 
PPTX
20.5 Java polymorphism
Intro C# Book
 
PPTX
20.4 Java interfaces and abstraction
Intro C# Book
 
PPTX
20.3 Java encapsulation
Intro C# Book
 
PPTX
20.2 Java inheritance
Intro C# Book
 
PPTX
20.1 Java working with abstraction
Intro C# Book
 
PPTX
19. Java data structures algorithms and complexity
Intro C# Book
 
PPTX
13. Java text processing
Intro C# Book
 
PPTX
12. Java Exceptions and error handling
Intro C# Book
 
PPTX
09. Java Methods
Intro C# Book
 
PPTX
07. Java Array, Set and Maps
Intro C# Book
 
PPTX
03 and 04 .Operators, Expressions, working with the console and conditional s...
Intro C# Book
 
PPTX
02. Data Types and variables
Intro C# Book
 
PPTX
01. Introduction to programming with java
Intro C# Book
 
PPTX
23. Methodology of Problem Solving
Intro C# Book
 
PPTX
Chapter 22. Lambda Expressions and LINQ
Intro C# Book
 
PPTX
21. High-Quality Programming Code
Intro C# Book
 
PPTX
19. Data Structures and Algorithm Complexity
Intro C# Book
 
PPTX
18. Dictionaries, Hash-Tables and Set
Intro C# Book
 
Java Problem solving
Intro C# Book
 
21. Java High Quality Programming Code
Intro C# Book
 
20.5 Java polymorphism
Intro C# Book
 
20.4 Java interfaces and abstraction
Intro C# Book
 
20.3 Java encapsulation
Intro C# Book
 
20.2 Java inheritance
Intro C# Book
 
20.1 Java working with abstraction
Intro C# Book
 
19. Java data structures algorithms and complexity
Intro C# Book
 
13. Java text processing
Intro C# Book
 
12. Java Exceptions and error handling
Intro C# Book
 
09. Java Methods
Intro C# Book
 
07. Java Array, Set and Maps
Intro C# Book
 
03 and 04 .Operators, Expressions, working with the console and conditional s...
Intro C# Book
 
02. Data Types and variables
Intro C# Book
 
01. Introduction to programming with java
Intro C# Book
 
23. Methodology of Problem Solving
Intro C# Book
 
Chapter 22. Lambda Expressions and LINQ
Intro C# Book
 
21. High-Quality Programming Code
Intro C# Book
 
19. Data Structures and Algorithm Complexity
Intro C# Book
 
18. Dictionaries, Hash-Tables and Set
Intro C# Book
 

Recently uploaded (20)

PPTX
Different Generation Of Computers .pptx
divcoder9507
 
PDF
KIPER4D situs Exclusive Game dari server Star Gaming Asia
hokimamad0
 
PPTX
Unlocking Hope : How Crypto Recovery Services Can Reclaim Your Lost Funds
lionsgate network
 
PPTX
Crypto Recovery California Services.pptx
lionsgate network
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
PDF
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
PDF
UI/UX Developer Guide: Tools, Trends, and Tips for 2025
Penguin peak
 
PDF
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
PPT
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
PDF
BGP Security Best Practices that Matter, presented at PHNOG 2025
APNIC
 
PDF
PDF document: World Game (s) Great Redesign.pdf
Steven McGee
 
PPTX
B2B_Ecommerce_Internship_Simranpreet.pptx
LipakshiJindal
 
PPTX
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
PPTX
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
PPTX
Slides Powerpoint: Eco Economic Epochs.pptx
Steven McGee
 
PPTX
Parallel & Concurrent ...
yashpavasiya892
 
PDF
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
PPTX
Black Yellow Modern Minimalist Elegant Presentation.pptx
nothisispatrickduhh
 
PPTX
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
PDF
Generative AI Foundations: AI Skills for the Future of Work
hemal sharma
 
Different Generation Of Computers .pptx
divcoder9507
 
KIPER4D situs Exclusive Game dari server Star Gaming Asia
hokimamad0
 
Unlocking Hope : How Crypto Recovery Services Can Reclaim Your Lost Funds
lionsgate network
 
Crypto Recovery California Services.pptx
lionsgate network
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
Slides: PDF Eco Economic Epochs for World Game (s) pdf
Steven McGee
 
UI/UX Developer Guide: Tools, Trends, and Tips for 2025
Penguin peak
 
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
BGP Security Best Practices that Matter, presented at PHNOG 2025
APNIC
 
PDF document: World Game (s) Great Redesign.pdf
Steven McGee
 
B2B_Ecommerce_Internship_Simranpreet.pptx
LipakshiJindal
 
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
Slides Powerpoint: Eco Economic Epochs.pptx
Steven McGee
 
Parallel & Concurrent ...
yashpavasiya892
 
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
Black Yellow Modern Minimalist Elegant Presentation.pptx
nothisispatrickduhh
 
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
Generative AI Foundations: AI Skills for the Future of Work
hemal sharma
 

11. Java Objects and classes

  • 1. Using Objects and Classes Defining Simple Classes Objects and Classes Software University http://softuni.bg SoftUni Team Technical Trainers
  • 2. Table of Contents 1. Objects 2. Classes 3. Built in Classes 4. Defining Simple Classes  Fields  Constructors  Methods
  • 5. Objects  An object holds a set of named values  E.g. birthday object holds day, month and year  Creating a birthday object: 5 Birthday day = 27 month = 11 year = 1996 LocalDate birthday = LocalDate.of(2018, 5, 5); System.out.println(birthday); Create a new object of type LocalDate Object fields Object name
  • 6. Classes  In programming classes provide the structure for objects  Act as a blueprint for objects of the same type  Classes define:  Fields (private variables), e.g. day, month, year  Getters/Setters, e.g. getDay, setMonth, getYear  Actions (behavior), e.g. plusDays(count), subtract(date)  Typically a class has multiple instances (objects)  Sample class: LocalDate  Sample objects: birthdayPeter, birthdayMaria 6
  • 7. Objects - Instances of Classes  Creating the object of a defined class is called instantiation  The instance is the object itself, which is created runtime  All instances have common behaviour 7 LocalDate date1 = LocalDate.of(2018, 5, 5); LocalDate date2 = LocalDate.of(2016, 3, 5); LocalDate date3 = LocalDate.of(2013, 3, 2);
  • 8. Classes vs. Objects  Classes provide structure for creating objects  An object is a single instance of a class 8 class LocalDate day: int month: int year: int plusDays(…) minusDays(…) Class actions (methods) Class name Class fields object birthdayPeter day = 27 month = 11 year = 1996 Object name Object data
  • 9. Using the Built-In API Classes Math, Random, BigInteger ...
  • 10.  Java provides ready-to-use classes:  Organized inside Packages like: java.util.Scanner, java.utils.List, etc.  Using static class members:  Using non-static Java classes: Built-In API Classes in Java 10 LocalDateTime today = LocalDateTime.now(); double cosine = Math.cos(Math.PI); Random rnd = new Random(); int randomNumber = rnd.nextInt(99);
  • 11.  You are given a list of words  Randomize their order and print each word on a separate line Problem: Randomize Words 11Check your solution here: https://judge.softuni.bg/Contests/1319/ Note: the output is a sample. It should always be different! a b b a PHP Java C# Java PHP C#
  • 12. Solution: Randomize Words 12 Scanner sc = new Scanner(System.in); String[] words = sc.nextLine().split(" "); Random rnd = new Random(); for (int pos1 = 0; pos1 < words.length; pos1++) { int pos2 = rnd.nextInt(words.length); //TODO: Swap words[pos1] with words[pos2] } System.out.println(String.join( System.lineSeparator(), words)); Check your solution here: https://judge.softuni.bg/Contests/1319/
  • 13.  Calculate n! (n factorial) for very big n (e.g. 1000) Problem: Big Factorial 13 50 3041409320171337804361260816606476884437764156 8960512000000000000 5 120 10 3628800 12 479001600 88 1854826422573984391147968456455462843802209689 4939934668442158098688956218402819931910014124 4804501828416633516851200000000000000000000 Check your solution here: https://judge.softuni.bg/Contests/1319/
  • 14. Solution: Big Factorial 14 import java.math.BigInteger; ... int n = Integer.parseInt(sc.nextLine()); BigInteger f = new BigInteger(String.valueOf(1)); for (int i = 1; i <= n; i++) { f = f.multiply(BigInteger .valueOf(Integer.parseInt(String.valueOf(i)))); } System.out.println(f); Use the java.math.BigInteger N! Check your solution here: https://judge.softuni.bg/Contests/1319/
  • 16.  Specification of a given type of objects from the real-world  Classes provide structure for describing and creating objects Defining Simple Classes 16 class Dice { … } Class name Class body Keyword
  • 17. Naming Classes  Use PascalCase naming  Use descriptive nouns  Avoid abbreviations (except widely known, e.g. URL, HTTP, etc.) 17 class Dice { … } class BankAccount { … } class IntegerCalculator { … } class TPMF { … } class bankaccount { … } class intcalc { … }
  • 18.  Class is made up of state and behavior  Fields store values  Methods describe behaviour Class Members 18 class Dice { private int sides; public void roll() { … } } Field Method
  • 19.  Store executable code (algorithm) Methods 19 class Dice { public int sides; public int roll() { Random rnd = new Random(); int sides = rnd.nextInt(this.sides + 1); return sides; } }
  • 20. Getters and Setters 20 class Dice { . . . public int getSides() { return this.sides; } public void setSides(int sides) { this.sides = sides; } public String getType() { return this.type; } public void setType(String type) { this.type = type; } } Getters & Setters
  • 21.  A class can have many instances (objects) Creating an Object 21 class Program { public static void main(String[] args) { Dice diceD6 = new Dice(); Dice diceD8 = new Dice(); } } Use the new keyword Variable stores a reference
  • 22.  Special methods, executed during object creation Constructors 22 class Dice { public int sides; public Dice() { this.sides = 6; } } Overloading default constructor Constructor name is the same as the name of the class
  • 23.  You can have multiple constructors in the same class Constructors (2) 23 class Dice { public int sides; public Dice() { } public Dice(int sides) { this.sides = sides; } } class StartUp { public static void main(String[] args) { Dice dice1 = new Dice(); Dice dice2 = new Dice(7); } }
  • 24.  Read students until you receive "end" in the following format:  "{firstName} {lastName} {age} {hometown}"  Define a class Student, which holds the needed information  If you receive a student which already exists (matching firstName and lastName), overwrite the information  After the end command, you will receive a city name  Print students which are from the given city in the format: "{firstName} {lastName} is {age} years old." Problem: Students 24
  • 25. Solution: Students (1) 25 public Student(String firstName, String lastName, int age, String city){ this.firstName = firstName; this.lastName = lastName; this.age = age; this.city = city; // TODO: Implement Getters and Setters }
  • 26. Solution: Students (2) 26 List<Student> students = new ArrayList<>(); String line; while (!line.equals("end")) { // TODO: Extract firstName, lastName, age, city from the input Student existingStudent = getStudent(students, firstName, lastName); if(existingStudent != null) { existingStudent.setAge(age); existingStudent.setCity(city); } else { Student student = new Student(firstName, lastName, age, city); students.add(student); } line = sc.nextLine(); }
  • 27. Solution: Students (3) 27 static Student getStudent(List<Student> students, String firstName, String lastName) { for (Student student : students){ if(student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) return student; } return null; }
  • 29.  …  …  … Summary  Classes define templates for object  Fields  Constructors  Methods  Objects  Hold a set of named values  Instance of a class
  • 33.  Software University – High-Quality Education and Employment Opportunities  softuni.bg  Software University Foundation  http://softuni.foundation/  Software University @ Facebook  facebook.com/SoftwareUniversity  Software University Forums  forum.softuni.bg Trainings @ Software University (SoftUni)
  • 34.  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution-NonCom mercial-ShareAlike 4.0 International" license License 34