Difference between revisions of "Java 9: Summary"
From Deep Blue Robotics Wiki
Nelson yip (Talk | contribs) |
Nelson yip (Talk | contribs) |
||
Line 1: | Line 1: | ||
[[http://wiki.carlmontrobotics.org/Java_1:_Basics '''Java Basics''']] | [[http://wiki.carlmontrobotics.org/Java_1:_Basics '''Java Basics''']] | ||
− | <ol start=" | + | |
+ | <ol start="1"> | ||
<li>Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control)</li> | <li>Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control)</li> | ||
<li>Hello World - A simple example of a Java program</li> | <li>Hello World - A simple example of a Java program</li> | ||
Line 11: | Line 12: | ||
[[http://wiki.carlmontrobotics.org/Java_2:_Object_Oriented_Programming '''Object-Oriented Programming''']] | [[http://wiki.carlmontrobotics.org/Java_2:_Object_Oriented_Programming '''Object-Oriented Programming''']] | ||
− | + | <ol start="1"> | |
− | + | <li>Objects and Classes - Collections of variables and methods | |
− | + | <li>Methods - Actions that objects can perform | |
− | + | <li>Instantiation - Creating a new object | |
− | + | <li>Fields - Variables that an object possesses | |
− | + | <li>Modifiers - Keywords that affect properties of a variable, method, or class | |
− | + | <li>Type Casting - Converting between different data types | |
− | + | <li>Imports - Bringing outside code into a program | |
− | + | <li>Math - A library of more advanced mathematical functions | |
− | + | <li>String - A class for manipulating strings of text | |
− | + | <li>Array - A data structure that stores multiple values in a single variable | |
− | + | <li>System I/O - Communicating with the program through the console | |
[[http://wiki.carlmontrobotics.org/Java_3:_WPILIB '''WPILib Basics''']] | [[http://wiki.carlmontrobotics.org/Java_3:_WPILIB '''WPILib Basics''']] | ||
− | + | <ol start="1"> | |
− | + | <li>FRC Updates - Installing the FRC software at kickoff or on new computers | |
− | + | <li>Iterative Robot - A class containing robot methods that are repeatedly called | |
− | + | <li>WPILib - The FRC library | |
− | + | <li>Actuators - Components on the robot that can perform actions (outputs) | |
− | + | <li>Sensors - Components on the robot that can collect data (inputs) | |
− | + | <li>Joysticks - Devices that the operator uses to control the robot (inputs) | |
− | + | <li>RobotDrive - A class for controlling the robot drivetrain | |
− | + | <li>FRC DriverStation - A program for operating the robot | |
− | + | <li>SmartDashboard - A program for displaying robot output to the operator | |
− | + | <li>Webdash - The online interface for the RoboRIO | |
[[http://wiki.carlmontrobotics.org/Java_4:_Command-Based_Programming '''Command-Based Programming''']] | [[http://wiki.carlmontrobotics.org/Java_4:_Command-Based_Programming '''Command-Based Programming''']] | ||
− | + | <ol start="1"> | |
− | + | <li>Robot Builder - A program for generating the general framework of the robot code</li> | |
− | + | <li>Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO</li> | |
− | + | <li>Subsystems - Parts of the robot that perform individual tasks</li> | |
− | + | <li>Commands - Actions that the robot can perform</li> | |
− | + | <li>Command Groups - Groups of actions for the robot to perform in sequence or in parallel</li> | |
− | + | <li>Operator Interface - A class that maps the joysticks and buttons with robot commands</li> | |
− | + | <li>Robot - An Iterative Robot class that manages the rest of the robot project</li> | |
− | + | <li>SmartDashboard Continued - Using additional features of SmartDashboard</li> | |
− | + | <li>Timer - A class for keeping track of real time</li> | |
[[http://wiki.carlmontrobotics.org/Java_5:_Inheritance '''Inheritance''']] | [[http://wiki.carlmontrobotics.org/Java_5:_Inheritance '''Inheritance''']] | ||
− | + | <ol start="1"> | |
− | + | <li>Subclasses - Extensions of another class that inherit its code</li> | |
− | + | <li>Overriding - Code in a subclass replacing code from a superclass</li> | |
− | + | <li>Super - Accessing methods and constructors of a superclass</li> | |
− | + | <li>Interfaces - Collections of methods that a class is required to implement</li> | |
− | + | <li>Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance</li> | |
[[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']] | [[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']] | ||
− | + | <ol start="1"> | |
Code Reuse - Not writing the same code twice | Code Reuse - Not writing the same code twice | ||
Encapsulation - Keeping information self-contained | Encapsulation - Keeping information self-contained | ||
Line 67: | Line 68: | ||
[[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']] | [[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']] | ||
− | + | <ol start="1"> | |
Nested Classes - Defining a class inside of another class | Nested Classes - Defining a class inside of another class | ||
Generics - Generic datatypes that can represent any datatype | Generics - Generic datatypes that can represent any datatype | ||
Line 82: | Line 83: | ||
'''Projects''' | '''Projects''' | ||
− | + | <ol start="1"> | |
Custom Widgets - Creating new widgets for the SmartDashboard | Custom Widgets - Creating new widgets for the SmartDashboard | ||
Device Characterization - Investigating the usage of various actuators and sensors | Device Characterization - Investigating the usage of various actuators and sensors |
Revision as of 22:07, 22 September 2016
- 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
- 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
- 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
-
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