C# 08.10.2020

This commit is contained in:
2023-10-08 08:51:30 +00:00
parent 2a35336a4c
commit a5fa1d7749
2 changed files with 246 additions and 2 deletions

View File

@ -167,16 +167,167 @@ try {
}
```
### Throw
### *throw*
```Java
throw new Exception("Very important exception! Don't you dare not handle it");
```
### Throws
### *throws*
Позволяет кинуть ошибку вверх по стаку
```Java
public static void main(String[] args) throws Exception {}
```
## OOP
OOP - бяка, Java - OOP => Java - бяка
```Java
public class Foo {
int bar;
string baz;
void fooBar() {
System.out.println("FooBaz");
}
}
```
### Модификаторы доступа
* public - везде
* private - только внутри класса
* protected - подклассы и сам класс
Если не указан, то применяется модификатор по умолчанию. Он делает переменную public в пределах данного пакета
### Конструктор и инициализатор
```Java
public class Test {
int age;
int age2;
int age3;
// Блок - инициализатор
{
age = 5
}
// Конструктор
public Test(int age2, int age3_input) {
this.age2 = age2;
age3 = age3_input; // Такое не делать, ибо не красиво
}
}
```
### Наследование
```Java
public class Foo {}
public class Bar extends Foo {}
```
Множественное наследование низя. Приватное не наследуется
#### *Override*
```Java
class Foo {
int foo() {
return 5;
}
}
class Bar extends Foo {
@Override
int foo() {
return 6;
}
}
```
Уровень видимости при *Override* не может понижаться. У переопределённого метода должен быть такой же интерфейс, как и у родителя
#### *super*
*super* позволяет обратиться к методам родительского класса
```Java
class Foo {
int foo() {
return 5;
}
}
class Bar extends Foo {
@Override
int foo() {
return super.foo();
}
}
```
#### *final* при наследовании
*final* запрещает наследование
#### Наследование конструктора
```Java
class Foo {
int a, b;
Foo(int a, int b) {
this.a = a;
this.b = b;
}
}
class Bar extends Foo {
int c;
Bar(int a, int b, int c) {
// Тут super должен быть сверху, иначе ошибка
super(a, b);
this.c = c;
}
}
```
#### *instanceof*
Позволяет проверить, создан ли объект на основе какого-то класса
```Java
class Foo {
int a, b;
Foo(int a, int b) {
this.a = a;
this.b = b;
}
}
class Bar extends Foo {
int c;
Bar(int a, int b, int c) {
// Тут super должен быть сверху, иначе ошибка
super(a, b);
this.c = c;
}
}
class Main {
public static void main() {
Bar bar = new Bar();
System.out.println(bar instanceof Foo);
}
}
```