# marcoyimyaem/ciiccb92026 architecture

> Architecture diagram of the GitHub repository marcoyimyaem/ciiccb92026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/marcoyimyaem/ciiccb92026
- Repository: https://github.com/marcoyimyaem/ciiccb92026

## Overview

This repository is a collection of standalone Java learning examples and exercises, not a connected application. The practical workflow is to run an example, observe its output, and, for the palindrome exercise, enter a word to receive a result. The tree and sampled source support a few direct calls, but most lessons are independent; links between them are intentionally omitted. The README provides no further capability overview, and unsampled lesson behavior is represented only by filenames.

Main entry points: [`Tasks/Task1.java`](https://github.com/marcoyimyaem/ciiccb92026/blob/main/Tasks/Task1.java) (Palindrome Exercise), [`chapter1/Main.java`](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Main.java) (Object Setup), [`chapter1/Toy.java`](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Toy.java) (Toy Model), [`chapter2/IfSwitchStatementLesson.java`](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/IfSwitchStatementLesson.java) (Conditionals)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_basics["Java Basics"]
  node_main["Object Setup<br/>[Main.java]"]
  node_toy["Toy Model<br/>[Toy.java]"]
  node_constructor1["Constructors"]
  node_garbage["Garbage Collection"]
  node_instance["Instance Initialization"]
  node_naming["Naming Conflicts"]
  node_primitives["Primitive Types"]
  node_references["References"]
end

subgraph group_control["Control Flow"]
  node_equality["Equality"]
  node_conditions["Conditionals"]
  node_loops["Loops<br/>[LoopsLesson.java]"]
  node_operators["Operators"]
end

subgraph group_data["Data Types"]
  node_arrays["Arrays<br/>[ArrayLesson.java]"]
  node_arraylist["Array Lists"]
  node_dates["Dates and Time"]
  node_strings["Strings<br/>[StringLesson.java]"]
end

subgraph group_oop["Object-Oriented Java"]
  node_access["Access Modifiers"]
  node_encapsulation["Encapsulation"]
  node_inheritance["Inheritance"]
  node_polymorphism["Polymorphism"]
  node_constructors["Constructors"]
  node_overloading["Overloading"]
  node_returntype["Return Types<br/>[ReturnType.java]"]
  node_other["Package Access Demo<br/>[SunFlower.java]"]
end

subgraph group_advanced["Language Features"]
  node_lambdas["Lambdas<br/>[LambdaLesson.java]"]
  node_varargs["Variable Arguments<br/>[VarArgsLesson.java]"]
  node_exceptions["Exceptions"]
  node_task["Palindrome Exercise<br/>[Task1.java]"]
end

node_learner(("Learner"))
node_console(("Console User"))

node_learner -->|"runs lesson"| node_main
node_learner -->|"runs lesson"| node_conditions
node_learner -->|"runs lesson"| node_arrays
node_learner -->|"runs lesson"| node_lambdas
node_learner -->|"runs lesson"| node_varargs
node_learner -->|"runs lesson"| node_inheritance
node_learner -->|"runs lesson"| node_polymorphism
node_learner -->|"runs lesson"| node_exceptions
node_learner -->|"runs exercise"| node_task
node_console -->|"enters word"| node_task
node_main -->|"creates and updates"| node_toy
node_task -->|"prints result"| node_console

click node_main "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Main.java"
click node_toy "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Toy.java"
click node_constructor1 "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Constructor1Lesson.java"
click node_garbage "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/GarbageCollectionLesson.java"
click node_instance "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/InstanceIniLesson.java"
click node_naming "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/NamingConflictLesson.java"
click node_primitives "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/PrimitivesLesson.java"
click node_references "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/ReferenceLesson.java"
click node_equality "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/EqualityOperator.java"
click node_conditions "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/IfSwitchStatementLesson.java"
click node_loops "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/LoopsLesson.java"
click node_operators "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/OperatorsLesson.java"
click node_arrays "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/ArrayLesson.java"
click node_arraylist "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/ArrayListLesson.java"
click node_dates "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/DatesAndTimeLesson.java"
click node_strings "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/StringLesson.java"
click node_access "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/AccessModifier.java"
click node_encapsulation "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/EncapsulationLesson.java"
click node_inheritance "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter5/InheritanceLesson.java"
click node_polymorphism "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter5/PolyMorrphismLesson.java"
click node_constructors "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/ConstructorLesson.java"
click node_overloading "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/OverLoadingLesson.java"
click node_returntype "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/ReturnType.java"
click node_lambdas "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/LambdaLesson.java"
click node_varargs "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/VarArgsLesson.java"
click node_exceptions "https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter6/ExceptionsLesson.java"
click node_task "https://github.com/marcoyimyaem/ciiccb92026/blob/main/Tasks/Task1.java"
click node_other "https://github.com/marcoyimyaem/ciiccb92026/blob/main/otherFolder/SunFlower.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_toy,node_constructor1,node_garbage,node_instance,node_naming,node_primitives,node_references,node_console toneBlue
class node_equality,node_conditions,node_loops,node_operators toneAmber
class node_arrays,node_arraylist,node_dates,node_strings toneMint
class node_access,node_encapsulation,node_inheritance,node_polymorphism,node_constructors,node_overloading,node_returntype,node_other toneRose
class node_lambdas,node_varargs,node_exceptions,node_task,node_learner toneIndigo
```

## Components

### Java Basics

- [Object Setup](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Main.java): `chapter1/Main.java`
- [Toy Model](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Toy.java): `chapter1/Toy.java`
- [Constructors](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/Constructor1Lesson.java): `chapter1/Constructor1Lesson.java`
- [Garbage Collection](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/GarbageCollectionLesson.java): `chapter1/GarbageCollectionLesson.java`
- [Instance Initialization](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/InstanceIniLesson.java): `chapter1/InstanceIniLesson.java`
- [Naming Conflicts](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/NamingConflictLesson.java): `chapter1/NamingConflictLesson.java`
- [Primitive Types](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/PrimitivesLesson.java): `chapter1/PrimitivesLesson.java`
- [References](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter1/ReferenceLesson.java): `chapter1/ReferenceLesson.java`

### Control Flow

- [Equality](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/EqualityOperator.java): `chapter2/EqualityOperator.java`
- [Conditionals](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/IfSwitchStatementLesson.java): `chapter2/IfSwitchStatementLesson.java`
- [Loops](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/LoopsLesson.java): `chapter2/LoopsLesson.java`
- [Operators](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter2/OperatorsLesson.java): `chapter2/OperatorsLesson.java`

### Data Types

- [Arrays](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/ArrayLesson.java): `chapter3/ArrayLesson.java`
- [Array Lists](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/ArrayListLesson.java): `chapter3/ArrayListLesson.java`
- [Dates and Time](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/DatesAndTimeLesson.java): `chapter3/DatesAndTimeLesson.java`
- [Strings](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter3/StringLesson.java): `chapter3/StringLesson.java`

### Object-Oriented Java

- [Access Modifiers](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/AccessModifier.java): `chapter4/AccessModifier.java`
- [Encapsulation](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/EncapsulationLesson.java): `chapter4/EncapsulationLesson.java`
- [Inheritance](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter5/InheritanceLesson.java): `chapter5/InheritanceLesson.java`
- [Polymorphism](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter5/PolyMorrphismLesson.java): `chapter5/PolyMorrphismLesson.java`
- [Constructors](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/ConstructorLesson.java): `chapter4/ConstructorLesson.java`
- [Overloading](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/OverLoadingLesson.java): `chapter4/OverLoadingLesson.java`
- [Return Types](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/ReturnType.java): `chapter4/ReturnType.java`
- [Package Access Demo](https://github.com/marcoyimyaem/ciiccb92026/blob/main/otherFolder/SunFlower.java): `otherFolder/SunFlower.java`

### Language Features

- [Lambdas](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/LambdaLesson.java): `chapter4/LambdaLesson.java`
- [Variable Arguments](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter4/VarArgsLesson.java): `chapter4/VarArgsLesson.java`
- [Exceptions](https://github.com/marcoyimyaem/ciiccb92026/blob/main/chapter6/ExceptionsLesson.java): `chapter6/ExceptionsLesson.java`
- [Palindrome Exercise](https://github.com/marcoyimyaem/ciiccb92026/blob/main/Tasks/Task1.java): `Tasks/Task1.java`

### Other components

- **Learner**
- **Console User**

## Connections

- Learner → Object Setup: runs lesson
- Learner → Conditionals: runs lesson
- Learner → Arrays: runs lesson
- Learner → Lambdas: runs lesson
- Learner → Variable Arguments: runs lesson
- Learner → Inheritance: runs lesson
- Learner → Polymorphism: runs lesson
- Learner → Exceptions: runs lesson
- Learner → Palindrome Exercise: runs exercise
- Console User → Palindrome Exercise: enters word
- Object Setup → Toy Model: creates and updates
- Palindrome Exercise → Console User: prints result
