//создаем класс My Program
class TestClass {
//создаем метод main, который запускает программу
public static void main(String args[]){
int r = 10; //переменнная
final double Pi = 3.1415926536; //константа
int [] arr = new int [5]; //объявляем массив, задаем размер массива
int c = arr.length; //размер массива
for(int el:arr){
//аналог foreach
}
Arrays.toString(arr); //преобразовуем в строку
//instanceof - (грубо говоря проверяет совместимость типов: if(var_type_1 instanceof var_type_2) )
String[] s = new String[]{"Lorem","Ipsum","Dolor"}; //объявляем массив, задаем элементы массива
String item = s[0]; // Lorem
String st = "Lorem";
char [] string = st.toCharArray(); //преобразуем строку в массив элементов char
String st2 = new String (string, 0, 3); //соединяем в строку
//выводим на экран
System.out.println(r*r*Pi);
}
}
/*
Модификаторы public (открытый), protected (защищенный) и private (закрытый)
Если указывать public, то это означает, что этот класс доступен абсолютно отовсюду, и ссылки на него можно помещать в любом коде.
Модификаторы доступа:
public - члены класса доступны всем
protected - члены класса доступны внутри пакета и в классах-наследниках
private - члены класса доступны только внутри класса
Модификаторы методов:
final - нельзя наследовать такой клас
abstract - нельзя создавать экземпляры, здесь только абстрактные методы
static - делает доступным метод/переменную только внутри класса а не объекта
void - тип, значит метод ничего не возвращает
super.methodName - обращаемся к методу родительского класса (часто нужно делать при переопределении методов)
модификатор final помогает предотвратить переопределение методов в дочерних классах
перегруженный метод == конструктор (имена одинаковые, но параметры не совпадают)
*/
//объявляем абстрактный метод внутри абстрактного класса
abstract void methodName(String argument);
//затем в дочернем классе:
public void methodName(String argument){
this.arg = argument;
}