complete lesson
This commit is contained in:
parent
86ffdd7397
commit
cbfbdab6c4
26
README.md
Normal file
26
README.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Object Oriented Programming
|
||||
|
||||
A short introduction to object oriented programming with examples in multiple languages
|
||||
|
||||
Example Languages:
|
||||
|
||||
- Java
|
||||
- Rust
|
||||
- C++
|
||||
- JavaScript (using TypeScript)
|
||||
|
||||
Lessons:
|
||||
|
||||
- [instanciating objects, accessing attributes and methods](./lessons/Instances.md)
|
||||
|
||||
Work in progress:
|
||||
|
||||
- creating a class
|
||||
- use attributes or functions from a function within an object
|
||||
- constructors
|
||||
- encapsulation
|
||||
- getter / setter / property
|
||||
- inheritance
|
||||
- polymorphism
|
||||
- virtual classes
|
||||
- interfaces
|
@ -2,14 +2,18 @@
|
||||
#include <cstring>
|
||||
|
||||
int main() {
|
||||
car a;
|
||||
// create a new car and store it in the variable 'a'
|
||||
car a;
|
||||
// set some data for that car
|
||||
a.manufacturer = "Benz";
|
||||
a.model = "Velo";
|
||||
|
||||
|
||||
// do the same for a second car
|
||||
car b;
|
||||
b.manufacturer = "Ford";
|
||||
b.model = "Model T";
|
||||
|
||||
// use a function of the car class to print out the information
|
||||
a.print_info();
|
||||
b.print_info();
|
||||
}
|
||||
|
@ -10,7 +10,9 @@ public class Car {
|
||||
public String model = "";
|
||||
public String manufacturer = "";
|
||||
|
||||
public String get_info() {
|
||||
return "Car Information:\n- manufacturer: " + this.manufacturer + "\n- model: " + this.model;
|
||||
public void print_info() {
|
||||
System.out.println("Car Information:");
|
||||
System.out.println("- manufacturer: " + this.manufacturer);
|
||||
System.out.println("- model: " + this.model);
|
||||
}
|
||||
}
|
||||
|
@ -6,13 +6,13 @@ public class main {
|
||||
a.manufacturer = "Benz";
|
||||
a.model = "Velo";
|
||||
|
||||
// Do the same for a second car
|
||||
// do the same for a second car
|
||||
Car b = new Car();
|
||||
b.manufacturer = "Ford";
|
||||
b.model = "Model T";
|
||||
|
||||
// use a function of the car class to print out the information
|
||||
System.out.println(a.get_info());
|
||||
System.out.println(b.get_info());
|
||||
a.print_info();
|
||||
b.print_info();
|
||||
}
|
||||
}
|
||||
|
70
lessons/Instances.md
Normal file
70
lessons/Instances.md
Normal file
@ -0,0 +1,70 @@
|
||||
# Object Instances
|
||||
|
||||
For this short Introduction we'll only create two objects, give them some data
|
||||
and let them do their magic with one function.
|
||||
|
||||
Objects are generally used to keep data logically grouped and also make it easy
|
||||
to perform actions on them without having to account for all the logic at the
|
||||
time of using those functions.
|
||||
|
||||
As an example I have created a Car class. This is probably going to be the
|
||||
main class used in all further lessons, since it has a lot of room for more data
|
||||
and functions to add except for manufacturer, model and the function print_info
|
||||
in this example.
|
||||
|
||||
```java
|
||||
/*
|
||||
* First we create a new car and store that in a variable, here called 'a'.
|
||||
* Usually a programming language has a keyword like 'new' to instantiate new objects.
|
||||
* here in Java a new Object is created by Specifying variable type, variable name
|
||||
* the keyword new and again the type that should be instantiated.
|
||||
*/
|
||||
Car a = new Car();
|
||||
|
||||
/*
|
||||
* To access data within an object you can use the object name followed by a dot
|
||||
* and the name of the property.
|
||||
* The data can be read or modified at will.
|
||||
* Since this is just the start of working with oop,
|
||||
* I'll also use very early cars here
|
||||
*/
|
||||
a.manufacturer = "Benz";
|
||||
a.model = "Velo";
|
||||
|
||||
/*
|
||||
* Then we do the same thing for a second car
|
||||
*/
|
||||
Car b = new Car();
|
||||
b.manufacturer = "Ford";
|
||||
b.model = "Model T";
|
||||
|
||||
/*
|
||||
* Functions can be accessed in the same way as properties, just with
|
||||
* parentheses behind to actually run the functions.
|
||||
* These will print out all the data we put into the objects before.
|
||||
*/
|
||||
a.print_info();
|
||||
b.print_info();
|
||||
```
|
||||
|
||||
The above example code together with the car class will create the following output:
|
||||
|
||||
```text
|
||||
Car Information:
|
||||
- manufacturer: Benz
|
||||
- model: Velo
|
||||
Car Information:
|
||||
- manufacturer: Ford
|
||||
- model: Model T
|
||||
```
|
||||
|
||||
If any of the examples don't produce the same output, then congrats, you just
|
||||
got yourself the homework to fix the error and submit a pull request to this
|
||||
repository :)
|
||||
|
||||
## Examples
|
||||
|
||||
- [Java](../java/instances)
|
||||
- [Rust](../rust/instances)
|
||||
- [C++](../cpp/instances)
|
||||
- [JavaScript (using TypeScript)](../typescript/instances)
|
@ -2,16 +2,20 @@ mod car;
|
||||
use car::Information;
|
||||
|
||||
fn main() {
|
||||
// create a new car and store it in the variable 'a'
|
||||
let a = car::Car {
|
||||
// set some data for that car
|
||||
manufacturer: "Benz".to_string(),
|
||||
model: "Velo".to_string()
|
||||
};
|
||||
|
||||
// do the same for a second car
|
||||
let b = car::Car {
|
||||
manufacturer: "Ford".to_string(),
|
||||
model: "Model T".to_string()
|
||||
};
|
||||
|
||||
// use a function of the car class to print out the information
|
||||
a.print_info();
|
||||
b.print_info();
|
||||
}
|
||||
|
@ -1,12 +1,16 @@
|
||||
import {Car} from './car'
|
||||
|
||||
// create a new car and store it in the variable 'a'
|
||||
const a = new Car();
|
||||
// set some data for that car
|
||||
a.manufacturer = 'Benz';
|
||||
a.model = 'Velo';
|
||||
|
||||
// do the same for a second car
|
||||
const b = new Car();
|
||||
b.manufacturer = 'Ford';
|
||||
b.model = 'Model T';
|
||||
|
||||
// use a function of the car class to print out the information
|
||||
a.print_info();
|
||||
b.print_info();
|
Loading…
x
Reference in New Issue
Block a user