Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

readme.md

Lesson Five

Table of Contents

The Lesson
The Program
The Assignment

  • In this lesson you can see how to create objects and how to call methods within them.
    • Note:
      • Congrats on making it this far you now know how to code in almost any programming language!!!
        • What I mean by this is that with the knowledge you now know you could create a simple program in almost any language.
        • This is because you understand the basics of input, output, math, and logic.
      • From here it will start to get harder but we are also starting the largest and most important concept in Java: Objects.
      • This first tutorial on objects (and the final in this group) will be short but that is because you must understand it perfectly.
        • That means you should spend just as much time as you spent on the larger topics understanding this small piece of a topic.
        • But now let's begin!
    • Objects:
      • Everything we have been working on so far has been building up to objects and you may have forgotten but we have actually already used objects.
        • We have made Scanner objects in nearly every lesson's program.
      • An object is an instance of a class.
        • For such a small line it probably contains a lot that makes no sense even if you believe you understand it.
      • For now we will discuss classes and methods which are required to understand objects and then we can come back to this.
    • Class:
      • A class is what defines an object.
      • All of the methods within a class are accessible to an object that is of that class type.
        • This means that we can define the behavior of all objects of a certain type just by making methods within the class.
      • A class can be created within another class (like what we have done with the Person class in this lesson).
        • Classes can also be created in their own files. (The file you are currently reading is for the Main class)
      • When you are declaring a class you write "public class CLASSNAME".
        • The public keyword is just like the keyword on all of your methods.
        • Usually when a class has the public keyword on it you should have it in its own file and so in the future we will do that.
        • For now we will also be ignoring the other possible keywords in order to make this lesson a bit easier to handle.
        • The word class in all lowercase is also a keyword that lets Java know that you are declaring a class (it's a big deal!)
    • Method
      • A method is what is contained within a class and is what allows you to do the actual defining of an object.
      • Methods are declared by writing "public void METHODNAME".
        • public is yet again the same keyword that is used on classes and will be discussed in more detail.
        • void is the return type of the method.
          • You can make the return type of a method anything that you could use as the type for a variable.
            • This is because unless you say void you will be FORCED to return a variable of that type.
          • As a review, possible types include:
            • Any primitive type (int, float, boolean, etc...)
            • Classes (String, Scanner, Person, etc...)
          • void is not a type of variable but just tells Java that you will not be returning anything.
          • We will discuss returning from methods more later but for now just use void.
      • In order to call a method within a class you must have an object of that class type.
        • You then use the dot seperator to access what's within that object.
          • Example: object.method();
            • object is the object.
            • . is the dot seperator necessary any time you are accessing something within an object.
            • method() is the method.
    • Objects again:
      • Now that we know more about Classes and Methods we can learn some more about objects.
      • When I said earlier that an object is an instance of a class I hope it now makes more sense.
        • I hope it's also clear how much work it took to explain that one line and what it entails.
        • If you missed the connection between what was just discussed and my statement about objects reread the lesson up to this point.
          • This is THAT important.
        • If you did understand the connection then still reread the lesson and then this summary.
          • Objects allow you to access non static methods within a class.
      • Now if you know anything else about objects from other sources it would be helpful to forget it so this information stays clear.
  • In this program we create a new class called Person and then create two objects of that same Person class.
  • We can then call the sayHello() method for both objects which prints "Hello World!" to the console.
  • The Assignment:
    • Make a program that will ask for the user's date of birth.
      • The program must ask for the month, day, and year separately.
      • The month must be in String form and not number form when input into the program.
        • The user should be able to enter both the full month name as well as the 3 letter abbreviation.
          • Example. February - Feb, March - Mar, June - Jun, November - Nov
        • You should continuously ask for the month until a correct format is entered.
      • The day must be within the range for the month.
        • You should continuously ask for the day until a correct day is entered.
          • For February, 29 is an acceptable day so you don't have to worry about leap years.
      • The year must be realistic.
        • It cannot be larger than 2015.
        • It cannot be smaller than 1700.
        • Do these dates sound realistic?
          • Maybe for 2010 but not for 1700.
          • As the person assigning this I can choose to make anything realistic though.
        • As I hope you guessed, you should continuously ask until a correct year is entered.
      • For both the day and the year, for now there is nothing you can do about whether or not they actually enter a number.
        • Just assume that the user is a good user and will enter a number.
    • The program must then calculate the users age from December 31, 2014
      • This means that everyone born within a certain year will be the same age.
        • For example: Born 2014: 0 years old.
        • For example: Born 1996: 18 years old.
        • For example: Born 1914: 100 years old.
    • The program must then state how old the user is and make a comment about that age.
      • You can be as specific or unspecific as you want.
        • Example: "You are 14 years old, wow you are young!", "You are 200 years old, are you lying?", etc...
      • You can use age ranges so people within certain categories have the same comment.
    • I encourage you to experiment a tiny bit before calling this a finished program.
      • Make a comment when someone enters a special date.
      • Make a comment for your birthday.
      • Experiment, have fun, surprise me!
    • Note:
      • I understand this has nothing to do with objects which is unfortunate but please still review the concepts gone over in lesson 5.
        • It is better that I introduce it to you early so you have time to absorb the information before we dive in head first.
      • I also recommend typing everything out rather than copying and pasting as it helps you get used to typing faster.
        • It will also help you get used to the way java code is written and your IDE's auto-complete feature.
    • Included is my version of the program for you to look at AFTER YOU ARE DONE.
      • Mine is done with readability and efficiency in mind although it is not perfect.
      • You may run this program though to see exactly what it is I am looking for.
        • I encourage you though to come up with a rough idea, maybe write out a plan for your program, before running mine.
        • This will improve how well you can come up with programming ideas as you will not always have an example to see what the user wants.
    • Good luck, have fun, and don't stress over this! If you have any questions or need any help don't be scared to ask!