C# 30.09.2023
This commit is contained in:
parent
8007485316
commit
2a35336a4c
84
C#/C#.md
84
C#/C#.md
@ -350,3 +350,87 @@ int Sum1(int a, int b) {
|
||||
|
||||
int Sum2(int a, int b) => a + b;
|
||||
```
|
||||
|
||||
### Рекурсия
|
||||
|
||||
```C#
|
||||
int Factorial(int n) {
|
||||
if (n == 0) return 1;
|
||||
|
||||
return n * Factorial(n - 1);
|
||||
}
|
||||
```
|
||||
|
||||
### Функции внути функций
|
||||
|
||||
```C#
|
||||
int Sum2Arr(int[] arr1, int[] arr2) {
|
||||
|
||||
int Sum(int[] arr) {
|
||||
int result = 0;
|
||||
foreach (int i in arr) {
|
||||
result += i;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
return Sum(arr1) + Sum(arr2);
|
||||
}
|
||||
```
|
||||
|
||||
## Enum
|
||||
|
||||
Enum используется для хранения состояния
|
||||
|
||||
```C#
|
||||
enum Operation {
|
||||
Add,
|
||||
Sub
|
||||
}
|
||||
|
||||
Operation foo = Operation.Add;
|
||||
```
|
||||
|
||||
### Тип констант перечисления
|
||||
|
||||
```C#
|
||||
enum Time: byte {
|
||||
Morning,
|
||||
Afternoon,
|
||||
Evening,
|
||||
Night
|
||||
}
|
||||
```
|
||||
|
||||
Тип обязательно должен быть целочисленным. По умолчанию int
|
||||
|
||||
### Задание значения для Enum
|
||||
|
||||
```C#
|
||||
enum DayTime {
|
||||
Morning = 3,
|
||||
Afternoon // 4
|
||||
}
|
||||
```
|
||||
|
||||
## OOP
|
||||
|
||||
OOP - зло, C# - OOP -> C# - зло
|
||||
|
||||
```C#
|
||||
namespace Foo {
|
||||
internal class Enemy {
|
||||
public int hp;
|
||||
public int armor;
|
||||
public int damage;
|
||||
|
||||
public void Move() {
|
||||
Console.WriteLine("I am moving");
|
||||
}
|
||||
|
||||
public void Attack() {
|
||||
Console.WriteLine("I am attacking");
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
106
Java/Java.md
106
Java/Java.md
@ -74,3 +74,109 @@ Pattern - скомпилированный RegEx
|
||||
Pattern p = Pattern.compile("java");
|
||||
p = Pattern.compile("java", Pattern.CASE_INSENSETIVE);
|
||||
```
|
||||
|
||||
## Var
|
||||
|
||||
Var выбирает тип по типу данных, который мы присваеваем. Нужно инициализировать при объявлении
|
||||
|
||||
```Java
|
||||
var x = 5;
|
||||
```
|
||||
|
||||
## Константы
|
||||
|
||||
В Java константы объявляются словом *final*
|
||||
|
||||
```Java
|
||||
final int LIMIT = 5;
|
||||
```
|
||||
|
||||
## Массивы
|
||||
|
||||
Объявлять массивы можно разными способами
|
||||
|
||||
```Java
|
||||
int nums[] = new int[] {10, 20};
|
||||
int[] nums = {10, 20, 30};
|
||||
```
|
||||
|
||||
### Многомерный массив
|
||||
|
||||
```Java
|
||||
int[][] nums = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
|
||||
```
|
||||
|
||||
## Параметры переменной длины
|
||||
|
||||
```Java
|
||||
static void sum(int ...nums) {
|
||||
int result = 0;
|
||||
for(int n: nums) {
|
||||
result += n;
|
||||
}
|
||||
System.out.println(result);
|
||||
}
|
||||
```
|
||||
|
||||
Все обязательные параметры до параметрвов переменной длины
|
||||
|
||||
## Значения по умолчанию для параметров
|
||||
|
||||
**Их нету!!!**
|
||||
|
||||
## Перегрузка методов
|
||||
|
||||
Перегрузка позволяет определять функции с одинаковым именем, но с разными типами и/или кол-вом параметров.
|
||||
|
||||
```Java
|
||||
static int sum(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
static double sum(double a, double b) {
|
||||
return a + b;
|
||||
}
|
||||
```
|
||||
|
||||
Если отличается только выходной тип, то останется только последняя имплементация
|
||||
|
||||
```Java
|
||||
// Эту версию не получится вызвать
|
||||
static int sum(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// Будет вызываться эта версия
|
||||
static double sum(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
```
|
||||
|
||||
## Обработка ошибок
|
||||
|
||||
### try-catch-finally
|
||||
|
||||
```Java
|
||||
try {
|
||||
int[] a = new int[3];
|
||||
a[4] = 5;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
System.out.println("Will always print this");
|
||||
}
|
||||
```
|
||||
|
||||
### Throw
|
||||
|
||||
```Java
|
||||
throw new Exception("Very important exception! Don't you dare not handle it");
|
||||
```
|
||||
|
||||
### Throws
|
||||
|
||||
Позволяет кинуть ошибку вверх по стаку
|
||||
|
||||
```Java
|
||||
public static void main(String[] args) throws Exception {}
|
||||
```
|
||||
|
37
Java/foo.java
Normal file
37
Java/foo.java
Normal file
@ -0,0 +1,37 @@
|
||||
class Solution {
|
||||
public static void main(String[] args) {
|
||||
int[] nums1 = {1,2,3,0,0,0};
|
||||
int[] nums2 = {2,5,6};
|
||||
merge(nums1, 3, nums2, 3);
|
||||
for (Object object :nums1) {
|
||||
System.out.println(object);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void merge(int[] nums1, int m, int[] nums2, int n) {
|
||||
int j = 0;
|
||||
for (int i = 0; i < nums1.length && j < n; i++) {
|
||||
if (nums1[i] <= nums2[j]) {
|
||||
continue;
|
||||
}
|
||||
insert(nums1, nums2[j], i);
|
||||
j++;
|
||||
i--;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void insert(int[] nums, int num, int pos) {
|
||||
if (pos == nums.length - 1) {
|
||||
nums[pos] = num;
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = pos; i < nums.length; i++) {
|
||||
int temp = nums[i];
|
||||
nums[i] = num;
|
||||
num = temp;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user