Урок 21: Ключевое слово static. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Урок 21: Ключевое слово static.



public class Lesson19 {
public static void main(String[] args) {
   /*
   Присвоить и переприсвоить имя и возраст мы может ТОЛЬКО Объекту human1, но не Классу Human.
   Поэтому переменные и методы Класса Human принадлежат ТОЛЬКО human 1.
    */
 
Human human1 = new Human (" Bob ", 30);
  human1.setName (" Tom ");
}
}
  class Human{
// переменная Объекта human 1 " name "
private String name;
// переменная Объекта human 1 " age "
private int age;
/*
Переменные Объекта инициализируются только при создании Объекта human 1 Класса Human.
*/
// пример переопределения конструктора по умолчанию
public Human(){
    this ("Bob", 12);
}

public Human(String name, int age){
    System. out. println ("Hello from the third Constructor!");
    this. name = name;
    this. age = age;
}

// метод Объекта human1 "setName"
public void setName(String name){
   this. name = name;
}
// метод Объекта human1 "setAge"
public void setAge(int age){
   this. age = age;
}
 }

 

 

Вывод в консоль:

 

Нет данных в консоли

 

 

public class Lesson19 {
public static void main(String[] args) {
   /*
   К статической переменной discription Класса Human мы можем обратиться не через создание Объекта human 1, а обратившись на прямую к Классу Human.
   */
  
Human. discription = "Nice";
    /*
   К статическому методу getDiscription Класса Human мы можем обратиться не через создание Объекта human1, а обратившись на прямую к Классу Human.
  */
   
Human. getDescription ();
}
}

  class Human{
// переменная Объекта human1 "name"
private String name;
// переменная Объекта human1 "age"
private int age;
// СТАТИЧЕСКАЯ переменная "discription" КЛАССА Human
public static String discription;

public Human(String name, int age){
    System. out. println ("Hello from the third Constructor!");
    this. name = name;
    this. age = age;
}
// метод Объекта human1 "setName"
public void setName(String name){
   this. name = name;
}
// метод Объекта human1 "setAge"
public void setAge(int age){
   this. age = age;
}
// СТАТИЧЕСКИЙ метод КЛАССА Human
public static void getDescription(){
    System. out. println (discription);
}
 }

 

 

Вывод в консоль:

 

Nice

 

 

public class Lesson19 {
public static void main(String[] args) {
   /*
   К статической переменной discription Класса Human мы можем обратиться не через создание Объекта human1, а обратившись на прямую к Классу Human.
   */
  
Human. discription = "Nice";
    /*
   К статическому методу getDiscription Класса Human мы можем обратиться не через создание Объекта human1, а обратившись на прямую к Классу Human.
   */
   
Human. getDescription ();
     /*
   К статическому методу getDiscription Класса Human мы можем обратиться И через создание Объекта human1, НЕ обратившись на прямую к Классу Human.
   Это возможно, но не совсем корректно с точки зрения ООП.
   */
    
Human human1 = new Human ("Bob", 40);
     // Переопределяем public static String discription; через Объект human1.
    
human1. discription = "Bad:-(";
     human1. getDescription ();

     // Лучше делать ТАК!!!
    
Human. discription = "Nice! Nice! Nice!";
     Human. getDescription ();
}
}

  class Human{
// переменная Объекта human1 "name"
private String name;
// переменная Объекта human1 "age"
private int age;
// СТАТИЧЕСКАЯ переменная "discription" КЛАССА Human
public static String discription;

public Human(String name, int age){
    System. out. println ("Hello from the third Constructor!");
    this. name = name;
    this. age = age;
}
// метод Объекта human1 "setName"
public void setName(String name){
   this. name = name;
}
// метод Объекта human1 "setAge"
public void setAge(int age){
   this. age = age;
}
// СТАТИЧЕСКИЙ метод КЛАССА Human
public static void getDescription(){
    System. out. println (discription);
}
 }

 

 

Вывод в консоль:

 

Nice

Hello from the third Constructor!

Bad:-(

Nice! Nice! Nice!

 

 

public class Lesson19 {
public static void main(String[] args) {
   Human human1 = new Human ("Bob", 40);
   Human human2 = new Human ("Tom", 30);

   Human. discription = "Nice";
   human1.getAllFields ();
   human2.getAllFields ();

   Human. discription = "Bad";
   human1.getAllFields ();
   human2.getAllFields ();
}
}

  class Human{
private String name;
private int age; /*
Если статическая переменная создана, но не проинициализирована,
то она имеет значение по умолчанию.
int == 0, String == null.
*/

public static String discription;

public Human(String name, int age){
    this. name = name;
    this. age = age;
}

public void setName(String name){
   this. name = name;
}

public void setAge(int age){
   this. age = age;
}

public void getAllFields(){
    System. out. println (name + ", " + age + ", " + discription);
}

/*
!!! В СТАТИЧЕСКОМ МЕТОДЕ НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ НЕСТАТИЧЕСКИЕ ПЕРЕМЕННЫЕ      name И age.
МОЖНО ИСПОЛЬЗОВАТЬ ТОЛЬКО discription!
ЭТОТ СТАТИЧЕСККИЙ МЕТОД НЕПРАВИЛЬНЫЙ!
public static void getAllFields(){
    System.out.println (name + ", " + age + ", " + discription);
}
*/
 
}

 

 

Вывод в консоль:

 

Bob, 40, Nice

Tom, 30, Nice

Bob, 40, Bad

Tom, 30, Bad

 

 

Примеры "Встроенных Статических методов".

public class Lesson19 {
public static void main(String[] args) {
   // Примеры " Встроенных Статических методов ".
  
System. out. println (Math. pow (3, 2));
   System. out. println (Math. PI);
}
 }

 

 

Вывод в консоль:

 

9.0

3.141592653589793

 

 

Программа подсчета созданных объектов класса Human.

public class Lesson19 {
public static void main(String[] args) {
   Human human1 = new Human ("Bob", 40);
   Human human2 = new Human ("Tom", 30);
   Human human3 = new Human ("Tim", 28);
   System. out. println ("Мы создали " + Human. countPeople + " Объкта.");

}
}

  class Human{
private String name;
private int age;
/*
Если статическая переменная создана, но не проинициализированна,
то она имеет значение по умолчанию.
int == 0.
*/
public static int countPeople; // Не инициализировать нулем! Просто нет смысла!)))

public Human(String name, int age){
    this. name = name;
    this. age = age;
    countPeople ++;
    // При создании нового Объекта human Класса Human,
    // countPeople увеличится на 1 (countPeople++;).
}
 }

 

 

Вывод в консоль:

 

Мы создали 3 Объкта.

 



Поделиться:


Последнее изменение этой страницы: 2020-12-17; просмотров: 63; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.23.63.252 (0.009 с.)