SlideShare uma empresa Scribd logo
1 de 41
Java: Building Blocks
       Cate Huston
       @kittenthebad
What We’ll Cover
•   Java: an Object Oriented Language

•   The Eclipse IDE

•   Writing your first program

•   Primitive Types

•   Strings

•   Conditions

•   Loops
Java: an Object
Oriented Language
What Does Object
Oriented Mean?
• If Ikea were made of code, it would totally
   be written in an Object Oriented language.
• Object-Oriented means that we break our
   code down into components (objects) with
   properties (fields), that can be used to
   make other objects, or interact with each
   other.
• (See? It’s a little bit like Ikea furniture!)
OK, Give Me an
Example!
•   Imagine a bike. If we wanted to “code” a bike, it
    would be a lot easier if we split it down into its
    component parts.

    •   wheels (x2)

    •   breaks

    •   seat

    •   frame

    •   peddles...
Another?
•   How about a ToDo list?

•   It’s make up of tasks.

•   Each task should have things associated with it, such as:

    •   It’s name

    •   The date it’s due

    •   The date we actually complete it

    •   An estimate of how long it will take

    •   The date we started it
Try It!

• Think of a complex object
• Break it down into it’s component parts
• What information does each component
  need to know about itself?
The Eclipse IDE
Eclipse is a powerful, free and open source Java IDE
(Integrated Development Environment). It has some
    very useful features for learning to program.
Let’s start by making a new project.
    File => New => Java Project
Let’s call it “Hello World”.
It’s a programming tradition.
Now we make a new “class”. Java classes
are where we represent our “objects”.
Let’s call this “HelloWorld”. Notice how
 there are no spaces? That’s important.
Our first class!
It should look like this.
Writing Your First
    Program
Finally! Write Some
Code

• For our first program, we’re going to write
  something that prints out “Hello World” in
  the terminal.
• (Sorry, programmer tradition)
Click on “Run” (the green “play
button), and see what happens.
What Does It All Mean?
•   public class HelloWorld {

    •   Declares our class/object with name “HelloWorld”. Everything inside the “{“ is part of the
        class. Public is to do with it’s visibility (don’t worry about that for now).

•   
       public static void main(String[] args) {

    •   This is our “main” method, what’s called when we click “run”. The String[] args means
        we can pass arguments to it, if we want to. Everything inside the “{“ is part of the main
        method.

•   
       
     System.out.println("Hello World");

    •   This means - print out “Hello World” to the terminal. The “;” is important, it denotes the
        end of the line of code. We’re going to be using a lot of these.

•   
       }                                  }

    •   The first closing bracket denotes the end of the “main” method, the second the end of the
        HelloWorld class.
Primitive Types
Building Blocks
• Primitives are the most basic kinds of “type”
  in Java (a building block!)
• You can also think of them as like atoms in
  chemistry.
• A “type” is where we say what kind of thing
  a variable is.
• Objects are made up of other objects and
  primitives.
For Example...
• Whole numbers, like 42, or 926 are of type
  int (or short, or long).

• Decimal numbers, like 2.34376 or 1.203 are
  float, or double.
• True or False are boolean.
• A character like ‘a’ or ‘c’ is a char. Notice
  the single quotes? Those are important.
Declaring Variables
•   We can declare a variable of a primitive type in Java as
    follows:

    •   int i = 42;

    •   double d = 735.27;

    •   boolean b = true;

    •   char c = ‘h’;

•   So:

    •   type variable_name = value;
See how we can use the “+” sign to
     include it in our output?
Strings
Strings

•   A String is not a primitive, it’s an Object,
    but we can declare it like a primitive.

•   It’s a little more complex to declare
    Objects (but we’ll look at that later)
    •   String s = “hello world”;
    •   String s = “hello world” + “nhow are you?”
Conditions
Comparing Things
•   We compare things in          •   Equals: ==
    Java using conditional
    logic.                        •   Greater Than: >

•   We can put this in an “if     •   Less Than: <
    statement”
                                  •   Greater Than or
    •   if (a == b ) { ... }          Equal To: >=

    •   else if (a < b) { ... }   •   Less Than or Equal
                                      To: <=
    •   else { ... }
Try this for different values of a
              and b
Loops
Repeating Things
• Loops are helpful for sections of code
  that we want to repeat.
• There are three kinds of loop.
 • while
 • do while
 • for
For Loops
• For when we know how many times
  we want to repeat something.
• 10 times
 • for(int i = 0; i < 10; i++)
• For each character in a string
 • for(int i = 0; i < stringname.length(); i++)
Repeat Something 10 Times
For each character in a string. s.charAt(i) gets
   the character in the string at position i.
While and Do-While
Loops
•   When we want to repeat something until a
    condition changes.

•   In a while loop we check that condition at the
    start of the loop

    •   while(a == b) { ... }

•   In a do-while loop we check that condition at
    the end of the loop.

    •   do { ... } while (a == b)
Example While Loop
Example Do-While
Whitespace
Tidy Code
•   Tidy code is much easier to read (and debug!)

    •   Debug - fix when it’s not working.

•   As a rule, indent in one inside each set of {}.

•   In longer sections of code, we can use // to denote a
    comment.

    •   A comment is code that is ignored by the compiler.

•   The Java compiler ignores whitespace, so use line breaks
    wherever you think it will make your code clearer.
Finally...
Finally

• This slide deck covers the very basics of
  Java - the building blocks.
• It’s important to understand these, because
  everything else builds upon them.
• Next, we’re going to look at Processing.
@kittenthebad
http://kittenthebad.wordpress.com/

  catehuston@googlewave.com

Mais conteúdo relacionado

Mais procurados

.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
Doncho Minkov
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Jaqueline Ramos
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
elliando dias
 

Mais procurados (20)

Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Refactoring Techniques
Refactoring TechniquesRefactoring Techniques
Refactoring Techniques
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
runC – Open Container Initiative
runC – Open Container InitiativerunC – Open Container Initiative
runC – Open Container Initiative
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Power shell basics day 4
Power shell basics day 4Power shell basics day 4
Power shell basics day 4
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
SonarQube
SonarQubeSonarQube
SonarQube
 
SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ?
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 
Pesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoPesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - Apresentação
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler
 
LDAP
LDAPLDAP
LDAP
 

Semelhante a Java Building Blocks

Presentation 2nd
Presentation 2ndPresentation 2nd
Presentation 2nd
Connex
 
Android webinar class_java_review
Android webinar class_java_reviewAndroid webinar class_java_review
Android webinar class_java_review
Edureka!
 
Build a virtual pet with javascript (april 2017)
Build a virtual pet with javascript (april 2017)Build a virtual pet with javascript (april 2017)
Build a virtual pet with javascript (april 2017)
Thinkful
 

Semelhante a Java Building Blocks (20)

2CPP02 - C++ Primer
2CPP02 - C++ Primer2CPP02 - C++ Primer
2CPP02 - C++ Primer
 
Presentation 2nd
Presentation 2ndPresentation 2nd
Presentation 2nd
 
CPP13 - Object Orientation
CPP13 - Object OrientationCPP13 - Object Orientation
CPP13 - Object Orientation
 
Javascript
JavascriptJavascript
Javascript
 
Android webinar class_java_review
Android webinar class_java_reviewAndroid webinar class_java_review
Android webinar class_java_review
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming language
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
C++ Introduction brown bag
C++ Introduction brown bagC++ Introduction brown bag
C++ Introduction brown bag
 
Speaking 'Development Language' (Or, how to get your hands dirty with technic...
Speaking 'Development Language' (Or, how to get your hands dirty with technic...Speaking 'Development Language' (Or, how to get your hands dirty with technic...
Speaking 'Development Language' (Or, how to get your hands dirty with technic...
 
Introduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformIntroduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platform
 
CPP02 - The Structure of a Program
CPP02 - The Structure of a ProgramCPP02 - The Structure of a Program
CPP02 - The Structure of a Program
 
Code Like Pythonista
Code Like PythonistaCode Like Pythonista
Code Like Pythonista
 
Core Java Basics
Core Java BasicsCore Java Basics
Core Java Basics
 
Дмитрий Нестерук, Паттерны проектирования в XXI веке
Дмитрий Нестерук, Паттерны проектирования в XXI векеДмитрий Нестерук, Паттерны проектирования в XXI веке
Дмитрий Нестерук, Паттерны проектирования в XXI веке
 
python.pdf
python.pdfpython.pdf
python.pdf
 
Design Patterns in Modern C++
Design Patterns in Modern C++Design Patterns in Modern C++
Design Patterns in Modern C++
 
Java Tutorial
Java Tutorial Java Tutorial
Java Tutorial
 
Build a virtual pet with javascript (april 2017)
Build a virtual pet with javascript (april 2017)Build a virtual pet with javascript (april 2017)
Build a virtual pet with javascript (april 2017)
 
Java Closures
Java ClosuresJava Closures
Java Closures
 
2CPP17 - File IO
2CPP17 - File IO2CPP17 - File IO
2CPP17 - File IO
 

Mais de Cate Huston

Art, Life and Programming
Art, Life and ProgrammingArt, Life and Programming
Art, Life and Programming
Cate Huston
 
Art, Life and Programming
Art, Life and ProgrammingArt, Life and Programming
Art, Life and Programming
Cate Huston
 

Mais de Cate Huston (10)

15 Tools to Make University Easier
15 Tools to Make University Easier15 Tools to Make University Easier
15 Tools to Make University Easier
 
Holiday Science Lecture: Art, Life and Programming
Holiday Science Lecture: Art, Life and ProgrammingHoliday Science Lecture: Art, Life and Programming
Holiday Science Lecture: Art, Life and Programming
 
Art, Life and Programming
Art, Life and ProgrammingArt, Life and Programming
Art, Life and Programming
 
Thinking Like a Programmer
Thinking Like a ProgrammerThinking Like a Programmer
Thinking Like a Programmer
 
An Introduction to Processing
An Introduction to ProcessingAn Introduction to Processing
An Introduction to Processing
 
Art, Life and Programming
Art, Life and ProgrammingArt, Life and Programming
Art, Life and Programming
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Processing
ProcessingProcessing
Processing
 
iPhone Commerce
iPhone CommerceiPhone Commerce
iPhone Commerce
 
Microsoft Vista: A Usability Problem
Microsoft Vista: A Usability ProblemMicrosoft Vista: A Usability Problem
Microsoft Vista: A Usability Problem
 

Último

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 

Último (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 

Java Building Blocks

  • 1. Java: Building Blocks Cate Huston @kittenthebad
  • 2. What We’ll Cover • Java: an Object Oriented Language • The Eclipse IDE • Writing your first program • Primitive Types • Strings • Conditions • Loops
  • 4. What Does Object Oriented Mean? • If Ikea were made of code, it would totally be written in an Object Oriented language. • Object-Oriented means that we break our code down into components (objects) with properties (fields), that can be used to make other objects, or interact with each other. • (See? It’s a little bit like Ikea furniture!)
  • 5. OK, Give Me an Example! • Imagine a bike. If we wanted to “code” a bike, it would be a lot easier if we split it down into its component parts. • wheels (x2) • breaks • seat • frame • peddles...
  • 6. Another? • How about a ToDo list? • It’s make up of tasks. • Each task should have things associated with it, such as: • It’s name • The date it’s due • The date we actually complete it • An estimate of how long it will take • The date we started it
  • 7. Try It! • Think of a complex object • Break it down into it’s component parts • What information does each component need to know about itself?
  • 9. Eclipse is a powerful, free and open source Java IDE (Integrated Development Environment). It has some very useful features for learning to program.
  • 10. Let’s start by making a new project. File => New => Java Project
  • 11. Let’s call it “Hello World”. It’s a programming tradition.
  • 12. Now we make a new “class”. Java classes are where we represent our “objects”.
  • 13. Let’s call this “HelloWorld”. Notice how there are no spaces? That’s important.
  • 14. Our first class! It should look like this.
  • 16. Finally! Write Some Code • For our first program, we’re going to write something that prints out “Hello World” in the terminal. • (Sorry, programmer tradition)
  • 17. Click on “Run” (the green “play button), and see what happens.
  • 18. What Does It All Mean? • public class HelloWorld { • Declares our class/object with name “HelloWorld”. Everything inside the “{“ is part of the class. Public is to do with it’s visibility (don’t worry about that for now). • public static void main(String[] args) { • This is our “main” method, what’s called when we click “run”. The String[] args means we can pass arguments to it, if we want to. Everything inside the “{“ is part of the main method. • System.out.println("Hello World"); • This means - print out “Hello World” to the terminal. The “;” is important, it denotes the end of the line of code. We’re going to be using a lot of these. • } } • The first closing bracket denotes the end of the “main” method, the second the end of the HelloWorld class.
  • 20. Building Blocks • Primitives are the most basic kinds of “type” in Java (a building block!) • You can also think of them as like atoms in chemistry. • A “type” is where we say what kind of thing a variable is. • Objects are made up of other objects and primitives.
  • 21. For Example... • Whole numbers, like 42, or 926 are of type int (or short, or long). • Decimal numbers, like 2.34376 or 1.203 are float, or double. • True or False are boolean. • A character like ‘a’ or ‘c’ is a char. Notice the single quotes? Those are important.
  • 22. Declaring Variables • We can declare a variable of a primitive type in Java as follows: • int i = 42; • double d = 735.27; • boolean b = true; • char c = ‘h’; • So: • type variable_name = value;
  • 23. See how we can use the “+” sign to include it in our output?
  • 25. Strings • A String is not a primitive, it’s an Object, but we can declare it like a primitive. • It’s a little more complex to declare Objects (but we’ll look at that later) • String s = “hello world”; • String s = “hello world” + “nhow are you?”
  • 27. Comparing Things • We compare things in • Equals: == Java using conditional logic. • Greater Than: > • We can put this in an “if • Less Than: < statement” • Greater Than or • if (a == b ) { ... } Equal To: >= • else if (a < b) { ... } • Less Than or Equal To: <= • else { ... }
  • 28. Try this for different values of a and b
  • 29. Loops
  • 30. Repeating Things • Loops are helpful for sections of code that we want to repeat. • There are three kinds of loop. • while • do while • for
  • 31. For Loops • For when we know how many times we want to repeat something. • 10 times • for(int i = 0; i < 10; i++) • For each character in a string • for(int i = 0; i < stringname.length(); i++)
  • 33. For each character in a string. s.charAt(i) gets the character in the string at position i.
  • 34. While and Do-While Loops • When we want to repeat something until a condition changes. • In a while loop we check that condition at the start of the loop • while(a == b) { ... } • In a do-while loop we check that condition at the end of the loop. • do { ... } while (a == b)
  • 38. Tidy Code • Tidy code is much easier to read (and debug!) • Debug - fix when it’s not working. • As a rule, indent in one inside each set of {}. • In longer sections of code, we can use // to denote a comment. • A comment is code that is ignored by the compiler. • The Java compiler ignores whitespace, so use line breaks wherever you think it will make your code clearer.
  • 40. Finally • This slide deck covers the very basics of Java - the building blocks. • It’s important to understand these, because everything else builds upon them. • Next, we’re going to look at Processing.