Difference between revisions of "Java 9: Summary"
Nelson yip (Talk | contribs) |
Nelson yip (Talk | contribs) |
||
Line 11: | Line 11: | ||
'''Object-Oriented Programming''' | '''Object-Oriented Programming''' | ||
− | Objects and Classes - Collections of variables and methods | + | Objects and Classes - Collections of variables and methods |
− | Methods - Actions that objects can perform | + | Methods - Actions that objects can perform |
− | Instantiation - Creating a new object | + | Instantiation - Creating a new object |
− | Fields - Variables that an object possesses | + | Fields - Variables that an object possesses |
− | Modifiers - Keywords that affect properties of a variable, method, or class | + | Modifiers - Keywords that affect properties of a variable, method, or class |
− | Type Casting - Converting between different data types | + | Type Casting - Converting between different data types |
− | Imports - Bringing outside code into a program | + | Imports - Bringing outside code into a program |
− | Math - A library of more advanced mathematical functions | + | Math - A library of more advanced mathematical functions |
− | String - A class for manipulating strings of text | + | String - A class for manipulating strings of text |
− | Array - A data structure that stores multiple values in a single variable | + | Array - A data structure that stores multiple values in a single variable |
− | System I/O - Communicating with the program through the console | + | System I/O - Communicating with the program through the console |
'''WPILib Basics''' | '''WPILib Basics''' | ||
− | FRC Updates - Installing the FRC software at kickoff or on new computers | + | FRC Updates - Installing the FRC software at kickoff or on new computers |
− | Iterative Robot - A class containing robot methods that are repeatedly called | + | Iterative Robot - A class containing robot methods that are repeatedly called |
− | WPILib - The FRC library | + | WPILib - The FRC library |
− | Actuators - Components on the robot that can perform actions (outputs) | + | Actuators - Components on the robot that can perform actions (outputs) |
− | Sensors - Components on the robot that can collect data (inputs) | + | Sensors - Components on the robot that can collect data (inputs) |
− | Joysticks - Devices that the operator uses to control the robot (inputs) | + | Joysticks - Devices that the operator uses to control the robot (inputs) |
− | RobotDrive - A class for controlling the robot drivetrain | + | RobotDrive - A class for controlling the robot drivetrain |
− | FRC DriverStation - A program for operating the robot | + | FRC DriverStation - A program for operating the robot |
− | SmartDashboard - A program for displaying robot output to the operator | + | SmartDashboard - A program for displaying robot output to the operator |
− | Webdash - The online interface for the RoboRIO | + | Webdash - The online interface for the RoboRIO |
+ | |||
'''Command-Based Programming''' | '''Command-Based Programming''' | ||
− | Robot Builder - A program for generating the general framework of the robot code | + | Robot Builder - A program for generating the general framework of the robot code |
− | Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO | + | Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO |
− | Subsystems - Parts of the robot that perform individual tasks | + | Subsystems - Parts of the robot that perform individual tasks |
− | Commands - Actions that the robot can perform | + | Commands - Actions that the robot can perform |
− | Command Groups - Groups of actions for the robot to perform in sequence or in parallel | + | Command Groups - Groups of actions for the robot to perform in sequence or in parallel |
− | Operator Interface - A class that maps the joysticks and buttons with robot commands | + | Operator Interface - A class that maps the joysticks and buttons with robot commands |
− | Robot - An Iterative Robot class that manages the rest of the robot project | + | Robot - An Iterative Robot class that manages the rest of the robot project |
− | SmartDashboard Continued - Using additional features of SmartDashboard | + | SmartDashboard Continued - Using additional features of SmartDashboard |
− | Timer - A class for keeping track of real time | + | Timer - A class for keeping track of real time |
'''Inheritance''' | '''Inheritance''' | ||
− | Subclasses - Extensions of another class that inherit its code | + | Subclasses - Extensions of another class that inherit its code |
− | Overriding - Code in a subclass replacing code from a superclass | + | Overriding - Code in a subclass replacing code from a superclass |
− | Super - Accessing methods and constructors of a superclass | + | Super - Accessing methods and constructors of a superclass |
− | Interfaces - Collections of methods that a class is required to implement | + | Interfaces - Collections of methods that a class is required to implement |
− | Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance | + | Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance |
'''Design Principles''' | '''Design Principles''' |
Revision as of 21:39, 22 September 2016
Java Basics
Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control) Hello World - A simple example of a Java program Data Types - Formats for storing information Variables - Data structures that store values Operators - Operations that can be performed on or between variables/values Control Statements - Statements that change the order in which code is executed Comments - Code that is not executed by the compiler
Object-Oriented Programming
Objects and Classes - Collections of variables and methods Methods - Actions that objects can perform Instantiation - Creating a new object Fields - Variables that an object possesses Modifiers - Keywords that affect properties of a variable, method, or class Type Casting - Converting between different data types Imports - Bringing outside code into a program Math - A library of more advanced mathematical functions String - A class for manipulating strings of text Array - A data structure that stores multiple values in a single variable System I/O - Communicating with the program through the console
WPILib Basics
FRC Updates - Installing the FRC software at kickoff or on new computers Iterative Robot - A class containing robot methods that are repeatedly called WPILib - The FRC library Actuators - Components on the robot that can perform actions (outputs) Sensors - Components on the robot that can collect data (inputs) Joysticks - Devices that the operator uses to control the robot (inputs) RobotDrive - A class for controlling the robot drivetrain FRC DriverStation - A program for operating the robot SmartDashboard - A program for displaying robot output to the operator Webdash - The online interface for the RoboRIO
Command-Based Programming
Robot Builder - A program for generating the general framework of the robot code Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO Subsystems - Parts of the robot that perform individual tasks Commands - Actions that the robot can perform Command Groups - Groups of actions for the robot to perform in sequence or in parallel Operator Interface - A class that maps the joysticks and buttons with robot commands Robot - An Iterative Robot class that manages the rest of the robot project SmartDashboard Continued - Using additional features of SmartDashboard Timer - A class for keeping track of real time
Inheritance
Subclasses - Extensions of another class that inherit its code Overriding - Code in a subclass replacing code from a superclass Super - Accessing methods and constructors of a superclass Interfaces - Collections of methods that a class is required to implement Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance
Design Principles
Code Reuse - Not writing the same code twice Encapsulation - Keeping information self-contained Polymorphism - Using different data types interchangeably Type Safety - Preventing incorrect use of data types Efficiency - Writing algorithms that use less processing power Memory Management - Garbage collection and avoiding memory leaks
Additional Topics
Nested Classes - Defining a class inside of another class Generics - Generic datatypes that can represent any datatype Enums - A special data type to define a collection of constants Exceptions - Errors thrown at runtime Threading - The sequence in which code is executed I/O Streams - Sequences of input or output information Graphics - Visual effects displayed on the screen by the program Annotations - A system for documenting code Regular Expressions - A technique for sorting through Strings Dynamic Programming - A technique for making algorithms more efficient Functional Programming - A style of programming that avoids changes of state Stream Operations - Functional programming techniques for manipulating collections
Projects
Custom Widgets - Creating new widgets for the SmartDashboard Device Characterization - Investigating the usage of various actuators and sensors Motion Profiling - Calculating a trajectory for the robot to follow NetTables Client - Reading data from network tables PID Control - A type of feedback loop RoboRIO Files - Storing files on the RoboRIO Robot Simulator - A program that simulates the robot for testing purposes Vision - Analyzing input from the camera