cis 199 final review. new material classes reference type not a value type! can only inherit from...
TRANSCRIPT
![Page 1: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/1.jpg)
CIS 199 Final Review
![Page 2: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/2.jpg)
New Material
![Page 3: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/3.jpg)
Classes Reference type
NOT a value type!
Can only inherit from ONE base class
![Page 4: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/4.jpg)
Properties Class member Holds a piece of data, information within an object Accessors: get, set
Can use auto-implemented when validation is not required If need validation, must create own backing field (instance
variable) and write own get and set accessors Read-only property – only has get, no set (no public set, at least)
Controllable scope
![Page 5: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/5.jpg)
![Page 6: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/6.jpg)
readonly Can make an instance variable readonly Initial value will be established in constructor After value is set, it may not change again
![Page 7: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/7.jpg)
Inheritance Extend, Expand an existing class Specialization Generalization “All students are a person, but not all persons are a student” Derived class “IS-A” base class
Student IS-A Person
Even if no base class is specified, one will be provided Object This is where method ToString was originally defined
![Page 8: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/8.jpg)
![Page 9: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/9.jpg)
![Page 10: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/10.jpg)
Protected vs PrivateWhat is the difference between Protected vs Private?
![Page 11: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/11.jpg)
Protected vs Private Private-The type or member can be accessed only by code
in the same class Protected -The type or member can be accessed only by
code in the same class, or in a class that is derived from that class.
![Page 12: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/12.jpg)
Polymorphism
Complicated Concept An object’s ability to take on, become different forms
Child classes take on properties of parent Objects may be treated as base class
Students can be treated as a person Keywords of note:
“override” – New implementation of a member in a child class that is inherited from base class
“virtual” – Class member that may be overridden in a child class “abstract” – Missing or incomplete member implementation.
MUST be implemented by child classes // More a 200 concept
![Page 13: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/13.jpg)
Abstract Classes
Generic class Provides some members, some information CAN NOT be created directly
Meaning direct instantiation is illegal
Serves as a common “base” for related objects
![Page 14: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/14.jpg)
![Page 15: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/15.jpg)
Test 01 Material
![Page 16: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/16.jpg)
Computer Hardware Central Processing Unit (CPU)
Brains Operations performed here
Main Memory (RAM) Scratchpad Work area for programs, process, temporary data
Secondary Storage Hard drive Flash drive CD, DVD
![Page 17: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/17.jpg)
Input, Output Devices Input
Takes data IN Keyboard, Mouse, Game Controller, Microphone
Output Pushes, places data OUT Display, Speakers, Printers
![Page 18: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/18.jpg)
Programs and Digital Data Programs
Operating Systems. Microsoft Office, Web browsers Instructions read by CPU and processed
Digital Data 1’s 0’s …forms binary (base 2)
![Page 19: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/19.jpg)
Built-In Types
![Page 20: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/20.jpg)
Formatted Output Placeholders Letter codes – C, D, F, P Precision Field width
Console.WriteLine(“x = {0,-10:F2}”, x);
![Page 21: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/21.jpg)
Operators ++, --
Postfix vs Prefix
int x = 5;
int y;
y = x++; vs y = ++x; Shorthand operators
+=, -=
Integer division
1/2 == 0
1.0 / 2.0 == 0.5
10 / 3 == 3, 10 % 3 == 1 = vs ==
![Page 22: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/22.jpg)
Properties Exposed “Variables” or accessible values of an object Can have access controlled via scope modifiers When thinking of properties: Values and definitions “get” – Code to run before returning a value “set” – Code to run before updating a value
Can be used for validation and other processing actions “value” is a keyword in “set”
![Page 23: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/23.jpg)
![Page 24: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/24.jpg)
Methods Actions, code to be executed May return a value, may take value (not required) Can be controlled via scope keywords Can be static // Different example
![Page 25: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/25.jpg)
Scope “private” – Can only be accessed by the class, object itself “protected” – Can only be accessed by the class, object, or
any child classes, objects “public” – Available access for all
![Page 26: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/26.jpg)
Named Constants AVOID MAGIC NUMBERS! Allows for reference across similar scope Change once, changes everywhere // ALL CAPS
![Page 27: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/27.jpg)
Conditional Logic if(expression)
If ‘expression’ is true If not true, skipped
else if(expression) Can be used to ‘chain’
conditions Code runs if ‘expression’ is
true
else Code to execute if
‘expression’ false
Statements can be nested
![Page 28: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/28.jpg)
Relational Operators >
Greater than <
Less than >=
Greater than OR equal to <=
Less than OR equal to ==
Equal to !=
NOT equal to
X > Y
X >= Y
X < Y
X <= Y
X == Y
X != Y
![Page 29: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/29.jpg)
Operator Precedence (Highest) ++, --, ! * / % + - < > <= >= == != && || = *= /= %= += -= (Lowest)
![Page 30: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/30.jpg)
Comparing Strings, Chars
You can use ==, !=
You cannot use >, >=, <, <=
You SHOULD use: String.Compare(s1, s2)
s1 > s2 Returns positive Number
s1 = s2 Returns zero
s1 < s2 Returns negative number
Compares the unicode value of EACH character
![Page 31: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/31.jpg)
Test 02 Material
![Page 32: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/32.jpg)
Basic GUI Example
Textboxes, labels, buttons, checkboxes, radiobuttons, panels, groupbox
Event handler
![Page 33: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/33.jpg)
Loops for
“For a given value X, while X is true, modify X…”
while “While X is true…”
do – while “Do these tasks, while X is true…”
foreach “For every X in this set of Y do the following…”
![Page 34: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/34.jpg)
for Example
![Page 35: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/35.jpg)
while Example
![Page 36: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/36.jpg)
do while Example
![Page 37: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/37.jpg)
foreach Example
![Page 38: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/38.jpg)
Key Loop Details Loops are NOT guaranteed to execute at least once!
…only exception is ‘do while’ Pretest vs posttest, or entry vs exit test
‘for’ loops require a variable, condition, and ‘step’ instruction ‘while’, ‘do while’ loops require a boolean expression ‘foreach’ loops require a collection of items
Arrays
Indefinite repetition – sequential search, sentinel control, validation loop
![Page 39: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/39.jpg)
Nested loops
Output
![Page 40: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/40.jpg)
Methods Actions, code to be executed May return a value, may take value (not required) Can be controlled via scope keywords Can be static
![Page 41: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/41.jpg)
Methods & Modularizing Your Code Methods
Break out ‘steps’ Easier to test Easier to visualize
Top Down Design
![Page 42: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/42.jpg)
Arrays
![Page 43: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/43.jpg)
Arrays
![Page 44: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/44.jpg)
Sample Questions onBlackboard Wiki
![Page 45: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/45.jpg)
What does ‘WYSIWYG’ stand for? What You See Is What You Get
![Page 46: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/46.jpg)
What is the difference between a high-level and a low-level language? Low-Level
Little to no ‘abstraction’ from the hardware or computer “Close to the hardware” Simple, but Difficult to use Machine code, assembly, C (in some cases)
High-Level Very strong ‘abstraction’ from the hardware or computer “Far from the hardware” Easier to use, abstraction adds complexity C++, Java, C#, Python
![Page 47: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/47.jpg)
How is the lifetime of a FIELD different from a lifetime of LOCAL variable?
Fields are members of their containing type
Fields can be used everywhere with appropriate scope
Local variables can be used only in their “local” environment
![Page 48: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/48.jpg)
What two things does a variable declaration specify about a variable?
Type Identifier
TYPE IDENTIFIER
![Page 49: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/49.jpg)
Describe ‘&&’ and ‘||’ and how they work.
&& (AND) Returns true if conditions are
ALL true “If you do well on the test
AND the quiz, you will earn a great grade!”
|| (OR) Returns true if ANY
conditions are true “You can run a mile OR walk
two miles (possible do both!)” Both short circuit
![Page 50: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/50.jpg)
Why is ‘TryParse’ more effective than ‘Parse’?
Less code No try / catch required
![Page 51: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/51.jpg)
What is the difference between a SIGNED an UNSIGNED int?
![Page 52: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/52.jpg)
What is the difference between syntax errors and logic errors?
Syntax Errors – Errors that prevent compilation or other factors that prevent successful compilation string myString = string.Empty; // Won’t compile, syntax error
Logic Errors – Errors that occur during runtime, such as incorrect comparison or other unexpected behavior If(grade > 60) { Code if grade is F } // Incorrect operator used
![Page 53: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/53.jpg)
What are the “Five logical units”?
CPU – Processing, instructions Memory – Scratch pad, working space (Temporary) Secondary Storage – Hard drives, storage (Long term) Input – Keyboards, Mice, Controllers Output – Monitors, Speakers, Printers
![Page 54: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/54.jpg)
Explicit type conversion? Why and how?
Variables must be used for a single type never change Move from one type to another, must cast EXPLICIT cast / type conversion
Aware of information loss
![Page 55: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/55.jpg)
Write a code fragment that will display “Good Job” when int variable score is 80 or more, “OK” when score is 70 – 79, and “Needs Work” for any score under 70.
![Page 56: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/56.jpg)
Write a code fragment that will apply a 10% discount to the value in double variable total when int variable numItems is 5 or more and int variable zone is 1, 3 or 5.
![Page 57: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/57.jpg)
The ‘switch’ statement can replace nested if/else. But under what conditions?
When matching on a specific… Value Type Enumeration …other data Doesn’t work for floating point types
![Page 58: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/58.jpg)
What does a ‘break’ statement do in a loop? It stops (BREAKS) loop execution Code continues, no further loop iterations
Example:
switch (comboBox1.SelectedItem.ToString())
{
case "A":
class_one_textBox = int.Parse(textBox1.Text); grade = 4.00 * class_one_textBox;
break;
case "A-": class_one_textBox =int.Parse(textBox1.Text); grade = 3.67 * class_one_textBox;
break;
![Page 59: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/59.jpg)
What does a ‘continue’ statement do in a loop?
Goes to the next iteration CONTINUES loop execution, by skipping current iteration This is only time a for loop would behave differently than a
while loop
![Page 60: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/60.jpg)
What are preconditions and postconditions for a method?
PRECONDITIONS Conditions that MUST be TRUE before method execution
POSTCONDITIONS Conditions that WILL be TRUE after method execution
![Page 61: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/61.jpg)
What is the difference between a void method and a value-returning method?
VOID Method Returns nothing! …a void return.
Value-Returning Returns a value! …that’s not a void return.
![Page 62: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/62.jpg)
Compare and contrast the use of pass by value against pass by reference, using key word ref versus pass by reference using keyword out.Pass by Value
Passes a copy of the value Not the object itself
Pass by Reference Passes the actual object itself
‘ref’ Causes a pass by reference on a variable
‘out’ Is used to reference a variable that the method will update
![Page 63: CIS 199 Final Review. New Material Classes Reference type NOT a value type! Can only inherit from ONE base class](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd01a28abf838caaace/html5/thumbnails/63.jpg)
How can REACH further help you today? Ask Questions Now!
Need to see an Example? Need to see a concept again?