CIS 199 Test 01 Review

Download Report

Transcript CIS 199 Test 01 Review

CIS 199 Final Review
New Material
Classes
 Reference type
 NOT a value type!
 Can only inherit from ONE base class
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
readonly
 Can make an instance variable readonly
 Initial value will be established in constructor
 After value is set, it may not change again
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
Protected vs Private
What is the difference between Protected vs Private?
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.
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
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
Test 01 Material
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
Input, Output Devices
 Input
 Takes data IN
 Keyboard, Mouse, Game Controller, Microphone
 Output
 Pushes, places data OUT
 Display, Speakers, Printers
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)
Built-In Types
Formatted Output
 Placeholders
 Letter codes – C, D, F, P
 Precision
 Field width
Console.WriteLine(“x = {0,-10:F2}”, x);
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 ==
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”
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
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
Named Constants
 AVOID MAGIC NUMBERS!
 Allows for reference across similar scope
 Change once, changes everywhere
 // ALL CAPS
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
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
Operator Precedence
 (Highest)
 ++, --, !
*/%
+ < > <= >=
 == !=
 &&
 ||
 = *= /= %= += -=
 (Lowest)
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
Test 02 Material
Basic GUI Example
 Textboxes, labels, buttons, checkboxes, radiobuttons, panels,
groupbox
 Event handler
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…”
for Example
while Example
do while Example
foreach Example
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
Nested loops
Output
Methods
 Actions, code to be executed
 May return a value, may take value (not required)
 Can be controlled via scope keywords
 Can be static
Methods & Modularizing Your Code
 Methods
 Break out ‘steps’
 Easier to test
 Easier to visualize
 Top Down Design
Arrays
Arrays
Sample Questions on
Blackboard Wiki
What does ‘WYSIWYG’ stand for?
 What
 You
 See
 Is
 What
 You
 Get
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
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
What two things does a
variable declaration specify
about a variable?
 Type
 Identifier
TYPE
IDENTIFIER
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
Why is ‘TryParse’ more effective
than ‘Parse’?
 Less code
 No try / catch required
What is the difference between
a SIGNED an UNSIGNED int?
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
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
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
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.
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.
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
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;
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
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
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.
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
How can REACH
further help you
today?
 Ask Questions Now!
 Need to see an Example?
 Need to see a concept again?