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: Objects and Classes
PPTX
Java Foundations: Maps, Lambda and Stream API
PDF
Java 8 Lambda Expressions
DOCX
Python Notes for mca i year students osmania university.docx
PDF
Java 8 Lambda Expressions & Streams
PPT
Java Basics
PPT
02 c++ Array Pointer
PPT
JUnit 4
Java Foundations: Objects and Classes
Java Foundations: Maps, Lambda and Stream API
Java 8 Lambda Expressions
Python Notes for mca i year students osmania university.docx
Java 8 Lambda Expressions & Streams
Java Basics
02 c++ Array Pointer
JUnit 4

What's hot (20)

PPT
Working with color and font
PPTX
Java Notes by C. Sreedhar, GPREC
PPT
JavaScript
PDF
Java 8 Lambda Built-in Functional Interfaces
PPTX
Java Foundations: Basic Syntax, Conditions, Loops
PPTX
Decision making in JAVA
PPTX
java interface and packages
PPTX
Android share preferences
PPT
Input output streams
PPT
Java: Primitive Data Types
PDF
Streams in Java 8
PPT
Java IO Package and Streams
PPTX
JAVA ENVIRONMENT
PPTX
Static Data Members and Member Functions
PPTX
Java Foundations: Data Types and Type Conversion
PPTX
Data types in python lecture (2)
PPTX
Java Foundations: Lists, ArrayList<T>
PPTX
Java Foundations: Methods
PPT
SQLITE Android
PPT
Working with color and font
Java Notes by C. Sreedhar, GPREC
JavaScript
Java 8 Lambda Built-in Functional Interfaces
Java Foundations: Basic Syntax, Conditions, Loops
Decision making in JAVA
java interface and packages
Android share preferences
Input output streams
Java: Primitive Data Types
Streams in Java 8
Java IO Package and Streams
JAVA ENVIRONMENT
Static Data Members and Member Functions
Java Foundations: Data Types and Type Conversion
Data types in python lecture (2)
Java Foundations: Lists, ArrayList<T>
Java Foundations: Methods
SQLITE Android
Ad

Similar to 11. Java Objects and classes (20)

PDF
Lecture3.pdf
PPTX
14. Java defining classes
PPT
Defining classes-and-objects-1.0
PPTX
Java-U1-C_1.2.pptx its all about the java
PPTX
11. Objects and Classes
PDF
Java for android developers
PDF
Built-in Classes in JAVA
PDF
Lecture 1 - Objects and classes
PPT
Chapter 13 - Inheritance and Polymorphism
PPT
Java căn bản - Chapter13
PDF
Basic program in java
PPTX
ICOM4015 CIIC4010 Exam Review #1
PDF
LECTURE 4 CLASSES AND OBJECTS.pdf
PPTX
Advance example of Classes and object and programming with case study
PDF
03_Objects and Classes in java.pdf
PPTX
AP computer barron book ppt AP CS A.pptx
PPT
Core Java
PPT
Corejava Training in Bangalore Tutorial
PPTX
05. Java Loops Methods and Classes
PPTX
Lecture 4
Lecture3.pdf
14. Java defining classes
Defining classes-and-objects-1.0
Java-U1-C_1.2.pptx its all about the java
11. Objects and Classes
Java for android developers
Built-in Classes in JAVA
Lecture 1 - Objects and classes
Chapter 13 - Inheritance and Polymorphism
Java căn bản - Chapter13
Basic program in java
ICOM4015 CIIC4010 Exam Review #1
LECTURE 4 CLASSES AND OBJECTS.pdf
Advance example of Classes and object and programming with case study
03_Objects and Classes in java.pdf
AP computer barron book ppt AP CS A.pptx
Core Java
Corejava Training in Bangalore Tutorial
05. Java Loops Methods and Classes
Lecture 4
Ad

More from Intro C# Book (20)

PPTX
17. Java data structures trees representation and traversal
PPTX
Java Problem solving
PPTX
21. Java High Quality Programming Code
PPTX
20.5 Java polymorphism
PPTX
20.4 Java interfaces and abstraction
PPTX
20.3 Java encapsulation
PPTX
20.2 Java inheritance
PPTX
20.1 Java working with abstraction
PPTX
19. Java data structures algorithms and complexity
PPTX
18. Java associative arrays
PPTX
16. Java stacks and queues
PPTX
13. Java text processing
PPTX
12. Java Exceptions and error handling
PPTX
09. Java Methods
PPTX
07. Java Array, Set and Maps
PPTX
03 and 04 .Operators, Expressions, working with the console and conditional s...
PPTX
02. Data Types and variables
PPTX
01. Introduction to programming with java
PPTX
23. Methodology of Problem Solving
PPTX
Chapter 22. Lambda Expressions and LINQ
17. Java data structures trees representation and traversal
Java Problem solving
21. Java High Quality Programming Code
20.5 Java polymorphism
20.4 Java interfaces and abstraction
20.3 Java encapsulation
20.2 Java inheritance
20.1 Java working with abstraction
19. Java data structures algorithms and complexity
18. Java associative arrays
16. Java stacks and queues
13. Java text processing
12. Java Exceptions and error handling
09. Java Methods
07. Java Array, Set and Maps
03 and 04 .Operators, Expressions, working with the console and conditional s...
02. Data Types and variables
01. Introduction to programming with java
23. Methodology of Problem Solving
Chapter 22. Lambda Expressions and LINQ

Recently uploaded (20)

PDF
The Evolution of Traditional to New Media .pdf
PPTX
newyork.pptxirantrafgshenepalchinachinane
PPTX
Reading as a good Form of Recreation
PPTX
module 1-Part 1.pptxdddddddddddddddddddddddddddddddddddd
PPT
Ethics in Information System - Management Information System
DOCX
Powerful Ways AIRCONNECT INFOSYSTEMS Pvt Ltd Enhances IT Infrastructure in In...
PDF
Containerization lab dddddddddddddddmanual.pdf
PPT
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
PPTX
AI_Cyberattack_Solutions AI AI AI AI .pptx
PDF
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
PDF
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
PPTX
t_and_OpenAI_Combined_two_pressentations
PPTX
TITLE DEFENSE entitle the impact of social media on education
PPT
250152213-Excitation-SystemWERRT (1).ppt
PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PPTX
Cyber Hygine IN organizations in MSME or
PPTX
The-Importance-of-School-Sanitation.pptx
PPTX
Internet Safety for Seniors presentation
PDF
Exploring The Internet Of Things(IOT).ppt
PPTX
Introduction to cybersecurity and digital nettiquette
The Evolution of Traditional to New Media .pdf
newyork.pptxirantrafgshenepalchinachinane
Reading as a good Form of Recreation
module 1-Part 1.pptxdddddddddddddddddddddddddddddddddddd
Ethics in Information System - Management Information System
Powerful Ways AIRCONNECT INFOSYSTEMS Pvt Ltd Enhances IT Infrastructure in In...
Containerization lab dddddddddddddddmanual.pdf
415456121-Jiwratrwecdtwfdsfwgdwedvwe dbwsdjsadca-EVN.ppt
AI_Cyberattack_Solutions AI AI AI AI .pptx
Session 1 (Week 1)fghjmgfdsfgthyjkhfdsadfghjkhgfdsa
📍 LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1 TERPOPULER DI INDONESIA ! 🌟
t_and_OpenAI_Combined_two_pressentations
TITLE DEFENSE entitle the impact of social media on education
250152213-Excitation-SystemWERRT (1).ppt
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
Cyber Hygine IN organizations in MSME or
The-Importance-of-School-Sanitation.pptx
Internet Safety for Seniors presentation
Exploring The Internet Of Things(IOT).ppt
Introduction to cybersecurity and digital nettiquette

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