Введение в Java
Чтобы смотреть видео нужно иметь активную платную подписку и вступить в курс. Войти или зарегистрироваться.

Что такое пакеты?

Большая проблема в программировании - проблема коллизии имен. Решается она по-разному в каждом языке.

  • Двигатель

  • СуперОбщий класс - не решение

  • Решение - пакеты (ООП)

  • Разложить классы в разные пакеты

    • имена пакетов разные
    • внутри пакета использовать класс
    • имена в разных пакетах могут повторятся
  • transport (главный пакет-предок)

    • air

      • plane
        • engine
    • space

      • rocket
        • engine
    • ground

      • car
        • engine

Как Java работает с пакетами

Какой пакет выбрать для нужной аппликации?

  • Калькулятор? - нельзя, так как конфликт с другими пакетами под таким же именем
  • Доменное имя, которое выбрано для программы - должно быть уникально для веба (www.engines.com), а значит уникальность соблюдена.
  • Доменное имя нужно инвертировать, чтобы использовать его для названия пакета (com.engines).
  • Root пакет - com
  • Пакет первого уровня - engines
  • Подпакеты - plane, car, rocket
  • Каждый пакет - директория ( папка с именем com)
  • Подпакет - директория в директории ( папка с именем engines в папке com
  • У каждого пакета есть имя, оно эквивалентно пути к пакету
    • Пакет plane --> com.engines.plane

Имена пакетов

  • имя состоит из одного слова (желательно)
  • без заглавных букв (желательно)

Пример

mkdir project
	mkdir src 
		mkdir com
			mkdir test

Как создать класс внутри пакета?

  • класс должен лежать внутри папки, в которой он нужен

  • внутри класс должно использоваться ключевое слово package

  • ключевое слово package должно быть в первой строке кода

  • после package нужно указать полное имя пакета (com.test - в случае существования папки com, но возможен и следующий вариант )

      package world
      	package earth
      		package humans
    
      			package world.earth.humans;
    
      			public class Human {
    
      				String name;}
    
      		package buildings
    
      			package world.earth. buildings;
    
      		    	public class House {
    
      				String address;}
    

Использование пакетов - импортирование

		public class House {

			String address;

			Human owner; }
  • в классе House существует два поля

    • adress с не примитивным типом String
    • owner c не примитивным типом Human
  • тоесть на самом деле тип поля owner - world.earth.humans.Human ---> (|) первый вариант использования классов из других пакетов (имяпакета.имякласса).

      	package world.earth.buildings;	
    
      	public class House {
    
      		String address;
    
      		world.earth.humans.Human owner; }
    
  • правильный вариант использования классов (||) - импортирование!

    • использование ключевого слова import

    • после использования package world.earth.buildings;

    • нужно написать полный путь к нужному классу import world.earth.humans.Human;

        	package world.earth.buildings;
      
        	import world.earth.humans.Human;
      
        	public class House {
      
        	String address;
      
        	Human owner; }
      
  • еще один правильный вариант использования (|||) - import world.earth.humans.*;--> импортировать все пакеты, которые лежат внутри папки humans, без импорта подпакетов.

      	    package world.earth.buildings;
    
      		import world.earth.humans.*;
    
      		public class House {
    
      		String address;
    
      		Human owner; }
    

Использование пакетов

  • использование полного имени пакета + имя класса --> world.earth.humans.Human human =new...
  • импорт конкретного класса --> import world.earth.humans.Human
  • импорт всех классов из пакета --> import world.earth.humans.*
  • использовать static import --> пока не разбираем!

Тип String (???)

  • java.lang.String

  • import java.lang.*

  • но! Java сама импортирует два пакета: пакет java.lang и текущий пакет (все классы, которые лежат в том же пакете, что и класс).

      	    package world.earth.buildings;
    
      		import world.earth.humans.*;
      		import world.earth.buildings.*;
      		import java.lang.*;
    
      		public class House {
    
      		String address;
    
      		Human owner; }
    

Java

  • source path --> input arg | -source
  • class path --> -cp --> файлы с байткодом
  • destination --> -d --> после компиляции в байткод

ЗАКРЕПИТЬ!

Практика, практика, практика... В заданиях к уроку надо выполнить что-то похожее, что было проведено в онлайне.

Полезные ссылки:

Группы для общения: