1 / 32

Introduction to Objects

Introduction to Objects. A way to create our own types. Type and Variables. Until this point we were only able to create simple types, actually call “primitive” types integer double float char String (actually not primitive). We want to do better. Bank Account Math Calculator Stock

burton
Télécharger la présentation

Introduction to Objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Objects A way to create our own types

  2. Type and Variables • Until this point we were only able to create simple types, actually call “primitive” types • integer • double • float • char • String (actually not primitive)

  3. We want to do better • Bank Account • Math Calculator • Stock • Car • Vending machine • Telephone • Model “whatever” as software • Make a computer act like one

  4. Use type to create a variable intx; Use class to create an object Circlemycircle=newCircle();

  5. Consider methods • Take a known process • Package it for reuse if ((a >= b) && (a>=c)) max = a else if ((b >= a) && (b>=c)) max = b else max = c; int maxof3(int a, int b, int c){ int max; if ((a >= b) && (a>=c)) max = a else if ((b >= a) && (b>=c)) max = b else max = c; return max; }

  6. How are object like this? • Take a group of methods and data and package those for reuse. class Testclass int i int i int k a( ) int k a( ) b( ) b( ) c( ) c( )

  7. int i; int j; class TestClass{ int i; int j; void a() {…} void b() {…} void c() {…} } void a() {…} void b() {…} void c() {…}

  8. How do we decide what goes inside? • The problem will guide us. • The things we put inside will define • What the object will do • How we can interact with it • These things will be the “Bank Account”s, “Student”s, etc

  9. Let’s start simple A circle

  10. What are some of the attributes of a circle? • Radius (most obvious) • Color • Border • Position

  11. How do we interact with a circle? • Change it’s size • Move it • Ask it for it’s area • … depending on the problem’s needs

  12. Let’s start with a simple Circle class • Just a radius • No borders or colors • A means of asking it for it’s area. • This will serve as the basis (a type or class) for creating lots of circles

  13. Circle() class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } }

  14. Circle() Heading for the class class Circle { double radius; Circle(double r) { radius = r; } double Area() { double this area = radius*radius*Math.PI; } }

  15. Circle() class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } } A property of each circle

  16. Circle() class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } } A method named Area that will calculate the area of that specific circle

  17. Circle() class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } } A constructor Used to initialize the circle Let’s see how in the next slide

  18. Creating circles Circle circle1 = new Circle(10); circle1 Radius:10

  19. Creating circles Circle circle1 = new Circle(10); circle1 radius:10 Circle circle2 = new Circle(15); circle2 radius:15

  20. Asking about area Circle circle1 = new Circle(10); System.out.println(circle1.Area()); circle1 radius:10 Each circle will return it’s own area Circle circle2 = new Circle(15); System.out.println(circle2.Area()); circle2 radius:15

  21. What’s the difference? • Circle circle1 = new Circle(10); • Circle circle1; Creates a REFERENCE Like having a telephone number for a friend.. a means to find them. But this one is a contact without a number.

  22. What’s the difference? • Circle circle1 = new Circle(10); • Circle circle1; Creates the object and defines the reference to the object In this case, circle1 actually refers to a real Circle.

  23. Only a reference.. No circle Circle circle1; circle1

  24. A reference with a circle Circle circle1 = new Circle(10); circle1 Radius:10

  25. public class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } public static void main(String args[]) { Circle circle1 = new Circle(10); System.out.println(circle1.Area()); Circle circle2 = new Circle(15); System.out.println(circle2.Area()); } } Put it Together! 314.1562.. 706.8583..

  26. Do I need new()?Can I define a variable and just reference from the main?How about this?… TRY IT… public class Circle() { double radius=5; public static void main(String args[]) { System.out.println(radius); } } Error: non-static variable radius cannot be referenced from a static context You never “new()”ed one. No radius exists.

  27. Only a reference.. No circle Circle circle1; circle1

  28. public class Circle() { double radius=5; double Area() { double this area = radius*radius*Math.PI; } public static void main(String args[]) { System.out.println(Area()); } } Do I need new()?Here there is no Area() or radius defined.Because NO new() has occurred! Error : nonstatic method can not be referenced from static method

  29. public class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } public static void main(String args[]) { Circle circle1 = new Circle(10); System.out.println(circle1.Area()); Circle circle2 = new Circle(15); System.out.println(circle2.Area()); } } This one creates the object.Then a radius and Area() exists to use… no errors. These are created when you new()

  30. public class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } public static void main(String args[]) { int i = 5; System.out.println(i); Circle circle1 = new Circle(10); System.out.println(circle1.Area()); } } Why can I declare “i” like this in the main, but not radius in the previous example? This is legal!

  31. public class Circle { double radius; Circle(double r) { radius = r; } double Area() { double thisarea = radius*radius*Math.PI; return thisarea; } public static void main(String args[]) { int i = 5; System.out.println(i); Circle circle1 = new Circle(10); System.out.println(circle1.Area()); } } Because main is static. Static needs more explanation.

  32. Conclusion:“new” before usingstatic is coming!

More Related