My Software Engineering Notes Help

Learning the Java Language

This trail covers the fundamentals of programming in the Java programming language.

Object-Oriented Programming Concepts

What is an object?

What is a class?

WHat is inheritance?

What is an interface?

What is a package?

Language Basics

Variables

Primitive Data Types

Arrays

Summary of variables

Operators

Assignment, Arithmetic, and Unary Operators

Equality, Relational, and Conditional Operators

Bitwise and Bit Shift Operators

Summary of Operators

Expressions, Statements, and Blocks

Control FLow Statements

The if-then and it-then-else Statements

The switch Statement

The while and do-while Statements

The for Statement

Branching Statements

Summary of Control Flow Statements

Classes and Objects

Classes

Declaring Classes

Declaring Member Variables

Defining Methods

Providing Constructors for Classes

Passing Information to a Method or a Constructor

Objects

Creating Objects

Using Objects

More on Classes

Returning a Value from a Method

Using the this Keyword

Controlling Access to a Member of a CLass

Understanding Class Members

Initializing Fields

Summary of Creating and Using Classes and Objects

Nested Classes

Inner Class Example

Local Classes

Anonymous Classes

Lambda Expressions

Method Reference

When to Use Nested Classes, Local Classes, Anonymous Classes, and Lambda Expressions

Enum Types

Annotations

Annotation Basics

Declaring an Annotation Type

Predefined Annotation Types

Type Annotations and Pluggable Type Systems

Repeating Annotations

Interfaces and Inheritance

Interfaces

Defining an Interface

Implementing an Interface

Using an Interface as a Type

Evolving Interfaces

Default Methods

Summary of Interfaces

Inheritance

Multiple Inheritance of State, Implementation, and Type

Overriding and Hiding Methods

Polymorphism

Hiding Fields

Using the Keyword super

Object as a Superclass

Writing Final Classes and Methods

Abstract Method and Classes

Summary of Inheritance

Numbers and Strings

Numbers

The Numbers Classes

Formatting Numeric Print Output

Beyond Basic Arithmetic

Summry of Numbers

Characters

Strings

Converting Between Numbers and Strings

Manipulating Characters in a String

Comparing Strings and Portions of Strings

The StringBuilder Class

Summary of Characters and Strings

Autoboxing and Unboxing

Generics

Why use Generics?

Generic Types

Raw Types

Generic Methods

Bounded Type Parameters

Generic Methods and Bounded Type Parameters

Generics, Inheritance, and Subtypes

Type Inference

Wildcards

Upper Bounded Wildcards

Unbounded Wildcards

Lower Bounded Wildcards

Wildcards and Subtyping

Wildcard Capture amd Helper Methods

Guidelines for Wildcard Use

Type Erasure

Erasure of Generic Types

Erasure of Generic Methods

Effects of Type Erasure and Bridge Methods

Non-Reifiable Types

Restrictions on Generics

Packages

Creating and Using Packages

Create a Package

Naming a Package

Using Package Members

Managing Source and Class Files

Summary of Creating and Using Packages

Last modified: 10 March 2024