mirror of
				https://github.com/Brandon-Rozek/website.git
				synced 2025-10-30 05:31:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			239 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | ||
| <html>
 | ||
| <head>
 | ||
|   <meta charset="utf-8" />
 | ||
|   <meta name="author" content="Fredrik Danielsson, http://lostkeys.se">
 | ||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | ||
|   <meta name="robots" content="noindex" />
 | ||
|     <title>Brandon Rozek</title>
 | ||
|   <link rel="stylesheet" href="themes/bitsandpieces/styles/main.css" type="text/css" />
 | ||
|   <link rel="stylesheet" href="themes/bitsandpieces/styles/highlightjs-github.css" type="text/css" />
 | ||
| </head>
 | ||
| <body>
 | ||
| 
 | ||
| <aside class="main-nav">
 | ||
| <nav>
 | ||
|   <ul>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Findex.html" data-shortcut="">
 | ||
|           Home
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Fcourses.html" data-shortcut="">
 | ||
|           Courses
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Flabaide.html" data-shortcut="">
 | ||
|           Lab Aide
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Fpresentations.html" data-shortcut="">
 | ||
|           Presentations
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Fresearch.html" data-shortcut="">
 | ||
|           Research
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|           <li class="menuitem ">
 | ||
|         <a href="index.html%3Ftranscript.html" data-shortcut="">
 | ||
|           Transcript
 | ||
|                   </a>
 | ||
|       </li>
 | ||
|       </ul>
 | ||
| </nav>
 | ||
| </aside>
 | ||
| <main class="main-content">
 | ||
|   <article class="article">
 | ||
|     <h1>CPSC 220 Lecture 4</h1>
 | ||
| <h2>Practice Problem</h2>
 | ||
| <ol>
 | ||
| <li>Create a class called Car</li>
 | ||
| <li>
 | ||
| <ul>
 | ||
| <li>Create a private variable of int type called year</li>
 | ||
| <li>Create a private variable of String type called make</li>
 | ||
| </ul>
 | ||
| </li>
 | ||
| <li>Create accessor methods for all data members.</li>
 | ||
| <li>Create mutator methods for all data methods.</li>
 | ||
| </ol>
 | ||
| <pre><code class="language-java">public class car { // begin car
 | ||
|   private int year;
 | ||
|   private String make;
 | ||
|   public int getYear(void) {
 | ||
|       return year;
 | ||
|   }
 | ||
|   public String getMake() {
 | ||
|       return make;
 | ||
|   }
 | ||
|   public void setYear(int y) {
 | ||
|     if (y > 1890) {
 | ||
|         year = y;
 | ||
|     } else {
 | ||
|         System.out.println(y + " is not a valid year.");
 | ||
|     }
 | ||
|   }
 | ||
|   public void setMake(String m) {
 | ||
|       make = m;
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <p>Local variables are only existent within the curly braces that it is defined in.</p>
 | ||
| <h2>If Statements and Boolean Expressions</h2>
 | ||
| <p>Boolean expressions return a boolean</p>
 | ||
| <pre><code class="language-java">1 < 4; // 1 is less than 4: TRUE
 | ||
| 3 > 5; // 3 is greater than 5: FALSE
 | ||
| 5 == 5; // 5 is equal to 5: TRUE
 | ||
| 5 != 5; // 5 is not equal to 5: FALSE
 | ||
| 1 >= 1; // 1 is greater than or equal to 1: TRUE
 | ||
| 5 <= 1; // 5 is less than or equal to 1: FALSE</code></pre>
 | ||
| <p>If statements only occur if the boolean expression is true, otherwise the <code>else</code> block is executed.</p>
 | ||
| <pre><code class="language-java">if (true) {
 | ||
|   System.out.println("I am always printed");
 | ||
| } else {
 | ||
|   System.out.println("I am never printed");
 | ||
| }</code></pre>
 | ||
| <p>You can only have one <code>else</code> per <code>if</code>. If you have an <code>if</code> you don't necessarily need an <code>else</code></p>
 | ||
| <h2>Local vs Class Variables</h2>
 | ||
| <p>If you have a local variable and the class variable sharing the same name, then the local variable is always used first.</p>
 | ||
| <pre><code class="language-java">public class car { // begin car
 | ||
|     private int year;
 | ||
|   public void setYear(int year) {
 | ||
|      year = year;
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <p>This is a redundant statement, it makes the argument that is passed in equal to itself.</p>
 | ||
| <p>To avoid this situation, use the keyword <code>this</code> to access the class variable</p>
 | ||
| <pre><code class="language-java">public class car { 
 | ||
|   private int year;  
 | ||
|   public void setYear(int year) {     
 | ||
|     this.year = year;  
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <p>The code above runs as expected.</p>
 | ||
| <p>Rewriting our class with <code>this</code></p>
 | ||
| <pre><code class="language-java">public class car { // begin car
 | ||
|   private int year;
 | ||
|   private String make;
 | ||
|   public int getYear(void) {
 | ||
|       return year;
 | ||
|   }
 | ||
|   public String getMake() {
 | ||
|       return make;
 | ||
|   }
 | ||
|   public void setYear(int year) {
 | ||
|     if (y > 1890) {
 | ||
|         this.year = year;
 | ||
|     } else {
 | ||
|         System.out.println(y + " is not a valid year.");
 | ||
|     }
 | ||
|   }
 | ||
|   public void setMake(String make) {
 | ||
|       this.make = make;
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <h2>Unreachable Code</h2>
 | ||
| <p>When the code hits a <code>return</code> statement, it stops executing the rest of the code in the method. Also throws an Unreachable Code Error.</p>
 | ||
| <pre><code class="language-java">public int add(int x, int y) {
 | ||
|   return x + y;
 | ||
|   System.out.println("x + y = " + x + y);
 | ||
| }
 | ||
| add();
 | ||
| System.out.println("Hello");</code></pre>
 | ||
| <p>Here the code above will not compile, though assuming the error doesn't exist then it would only print out "Hello"</p>
 | ||
| <h2>Constructors</h2>
 | ||
| <p>You cannot have a private or protected constructors.</p>
 | ||
| <p>Constructors are used to initialize your objects.</p>
 | ||
| <p>You want to have the class variables to the left of the assignment statement.</p>
 | ||
| <pre><code class="language-java">public class car {
 | ||
|   private int year;
 | ||
|   private String make;
 | ||
|   car() {
 | ||
|     year = 1890;
 | ||
|     make = "Ford";
 | ||
|   }
 | ||
|   car(int year, String make) {
 | ||
|     this.year = year;
 | ||
|     this.make = make;
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <h2>Testers</h2>
 | ||
| <p>Testers are useful to check that the class is implemented correctly.  Both the tester and the class have to be in the same folder/directory.</p>
 | ||
| <pre><code class="language-java">public class carTester {
 | ||
|   public static void main(String[] args) {
 | ||
|     Car myCar; // Declaration
 | ||
|     myCar = new Car(); // Initilization
 | ||
|     Car yourCar = new Car(2009, "Hyundai"); // Declaration + Initialization
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <h2>More about classes</h2>
 | ||
| <pre><code class="language-java">public class Car {
 | ||
|   private String name;
 | ||
|   private int odometer;
 | ||
|   public void setOdometer(int od) {
 | ||
|     odometer = od;
 | ||
|   }
 | ||
|   public void setName(String n) {
 | ||
|       this.name = n;
 | ||
|   }
 | ||
|   public void changeOilRequest(String name, int od) {
 | ||
|     if (name == this.name) {
 | ||
|       int difference = od - this.odometer;
 | ||
|       if (difference > = 3000) {
 | ||
|         // You can call other methods in the class
 | ||
|         setOdo(od);  // Equivalent to "this.setOdo(od);"
 | ||
|         this.odometer = od;
 | ||
|         System.out.println("Ready for oil change.");
 | ||
|       } else {
 | ||
|         System.out.println(name + " not ready for oil change.")
 | ||
|       }
 | ||
|     } // end if
 | ||
|   } // end changeOil request
 | ||
| } // end class</code></pre>
 | ||
| <p>To call public methods outside the class use the variable name to do so.</p>
 | ||
| <pre><code class="language-java">public class CarTester {
 | ||
|   public static void main(String[] args) {
 | ||
|     Car myCar = new Car();
 | ||
|     myCar.setName("Honda")
 | ||
|     myCar.changeOilRequest("Honda", 3400);
 | ||
|   }
 | ||
| }</code></pre>
 | ||
| <h2>Math library</h2>
 | ||
| <p>The <code>ceil</code> method rounds up while the <code>floor</code> method runs down.</p>
 | ||
| <pre><code class="language-java">Math.ceil(3.2); // 4
 | ||
| Math.ceil(4.1); // 4</code></pre>
 | ||
|   </article>
 | ||
| </main>
 | ||
| 
 | ||
| <script src="themes/bitsandpieces/scripts/highlight.js"></script>
 | ||
| <script src="themes/bitsandpieces/scripts/mousetrap.min.js"></script>
 | ||
| <script type="text/x-mathjax-config">
 | ||
|   MathJax.Hub.Config({
 | ||
|     tex2jax: {
 | ||
|       inlineMath: [ ['$','$'], ["\\(","\\)"] ],
 | ||
|       processEscapes: true
 | ||
|     }
 | ||
|   });
 | ||
| </script>
 | ||
| 
 | ||
| <script type="text/javascript"
 | ||
|     src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
 | ||
| </script>
 | ||
| <script>
 | ||
|   hljs.initHighlightingOnLoad();
 | ||
|   
 | ||
|   document.querySelectorAll('.menuitem a').forEach(function(el) {
 | ||
|     if (el.getAttribute('data-shortcut').length > 0) {
 | ||
|       Mousetrap.bind(el.getAttribute('data-shortcut'), function() {
 | ||
|         location.assign(el.getAttribute('href'));
 | ||
|       });       
 | ||
|     }
 | ||
|   });
 | ||
| </script>
 | ||
| 
 | ||
| </body>
 | ||
| </html>
 |