diff --git a/C#/C#.md b/C#/C#.md index 4c7b94a..17d8efd 100644 --- a/C#/C#.md +++ b/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"); + } + } +} +``` diff --git a/Java/Java.md b/Java/Java.md index a8b5e2c..415b043 100644 --- a/Java/Java.md +++ b/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 {} +``` diff --git a/Java/foo.java b/Java/foo.java new file mode 100644 index 0000000..231e264 --- /dev/null +++ b/Java/foo.java @@ -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; + } + } +} \ No newline at end of file