Главная » Статьи для тега "private"

Модификаторы доступа и инкапсуляция – JAVA ДЛЯ ANDROID

Добавлено Дата: 8 July, 2013 категория: Разработка для Android

 

Ранее мы упоминали о том, что к членам класса применимы специальные правила видимости. Определения в большинстве блоков Java имеют статическую (лексическую) область видимости: они видимы только внутри данного блока и вложенных в него блоков. Но определения, сделанные в классе, могут быть видимы и вне блока. Java поддерживает публикацию членов класса, относящихся к верхнему уровню, – то есть его методов и полей – так, чтобы к ним имел доступ код из других классов. Этот доступ осуществляется при помощи модификаторов доступа. Модификаторы доступа – это ключевые слова, влияющие на видимость объявлений, к которым применяются эти модификаторы, для тех или иных элементов.

Читать »

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

Добавлено Дата: 20 November, 2012 категория: C#, Windows Runtime, XAML, Разработка для Windows 8

Такая  мощная  модель  связывания  данных  позволяет использовать  паттерн

MVVM для архитектуры приложения.

Данный  паттерн  был  представлен Джоном  Госсманом  в    2005   году.  Он представляет модификацию  паттерна MVP и ориентирован  на современные платформы  разработки,  которые  имеют   возможность связывания данных. Благодаря   применению   этого   паттерна   у   нас   появляется  возможность разделения  представления  и  модели,  тем  самым  мы  можем  изменять  их независимо друг  от  друга.  Например, разработчики  создают логику  работы приложения, а дизайнеры работают над интерфейсом приложения.

Читать »

Работа с WebAuthenticationBroker Windows Runtime

Добавлено Дата: 25 October, 2012 категория: C#, Windows Runtime, XAML, Разработка для Windows 8

Аутентификация через третьи сервисы широко  используется в  современных приложениях.  При  этом  наиболее  широко  распространена  аутентификация через веб-страницы фейсбука, LiveId и других социальных сервисов. Как правило, в   таких  системах  предоставляется механизм  аутентификации  пользователей OAuth.  Это  означает,  что  в   приложении  необходимо  открыть  веб-страницу сервиса, на которой пользователь сможет ввести данные для  аутентификации в  нем. После успешного прохождения аутентификации приложению выдаются сессионные данные,  позволяющие ему взаимодействовать  с сервисом. Такой подход избавляет пользователя от необходимости создавать логин и пароль для каждого приложения.

Читать »

Уровни доступа

Добавлено Дата: 3 May, 2012 категория: Java

 методы и  переменные  класса  могут  иметь  следующие уровни доступа: public, private, protected  и package.  Наш

класс PingPongEngine имеет уровень  доступа public. Это значит, что  у любого класса есть доступ к нему. Давайте  проведем простой эксперимент  — удалим ключевое слово public из  объявления класса PingPongEngine.     Теперь   класс   PingPongTable  не   будет компилироваться,   указывая  на  ошибки  PingPongEngine cannot be resolved  to  a  type  (Невозможно  определить  тип  PingPongEngine)  и  The type   engine.PingPongEngine    is    not    visible    (Тип    данных engine.PingPongEngine  невидим).  Это   значит,   что   класс PingPongTable не видит больше класс PingPongEngine.

Читать »

Заканчиваем игру Пинг-Понг

Добавлено Дата: 22 April, 2012 категория: Java

Теперь,  после краткого введения в потоки мы готовы поменять классы нашей   игры  в   пинг-­?понг.   Давайте   начнем   с   класса PingPongGreenTable.  Нам не надо отображать белую точку по клику мыши –  это  было  просто  учебное  упражнение  для  отображения координат   указателя   мыши.   Поэтому   мы  удалим   объявление переменной  point и строки, которые рисуют белую точку из  метода paintComponent().   Также, в конструкторе больше не нужен MouseListener, так как он только показывает координаты точки.С  другой стороны, этот класс должен реагировать на некоторые кнопкиклавиатуры  (N – для начала новой игры, S – для  подачи  мяча и Q – длявыхода  из игры). В этом нам поможет метод addKeyListener().Для того, чтобы  сделать наш код более инкапсулированным, я переместил  вызовы repaint()  из  класса  PingPongGameEngine  в класс   PingPongGreenTable.    Теперь,    когда    понадобится, PingPongGreenTable будет перерисовывать себя сам. Также,  я добавил методы для изменения положения мяча, ракеткикомпьютера  и для отображения сообщений. package screens;

Читать »

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

Добавлено Дата: 5 April, 2012 категория: Silverlight

Рис. 19.1. Список простых чисел

«

В момент щелчка приложение отключает кнопку cmdFind (на ней написано Найти простые числа), чтобы предотвратить создание нескольких потоков. В принципе, это возможно, но сбивает с толку пользователя. Затем приложение извлекает значения границ диапазона, создает объект FindPrimesThreadWrapper, подключает обработчик к событию Completed и вызывает метод Start О , чтобы начать вычисление.

Читать »

Локальное соединение

Добавлено Дата: 2 April, 2012 категория: Silverlight

Как видите, платформа Silverlight предоставляет мощные, но довольно сложные средства коммуникации с помощью сокетов. Между тем, в Silverlight есть другой, более простой, механизм коммуникации — модель локальных соединений.

Поддержка сокетов позволяет приложению Silverlight сообщаться практически с лю­бой сетевой программой, выполняющейся на любом компьютере (конечно, если бранд­мауэр не блокирует коммуникацию). значительно скромнее. Оно предоставляет простой способ сообщения между двумя приложениями Silverlight, вы­полняющимися на одном компьютере. Оно особенно полезно для приложений, выпол­няющихся вне браузера, потому что обычно пользователи запускают и оставляют их загруженными длительное время.

Читать »

Элемент UserControl игры с бомбами

Добавлено Дата: 1 April, 2012 категория: Silverlight

Следующий этап разработки приложения — создание графического представле­ния бомбы. Можно было бы использовать статическое изображение с прозрачным фо­ном, однако такое решение слишком негибкое. Лучше применить более гибкие фигуры

Silverlight. Фигуры позволяют изменять размеры и поворачивать бомбы, анимировать детали бомбы и т.д. Честно говоря, для такой простой игры, как в данном примере, было бы достаточно статического изображения, однако тогда при любом усложнении структуры игры (например, при добавлении фона или дополнительных правил) вы столкнетесь с неразрешимыми проблемами. Бомба, использованная в данном примере, извлечена непосредственно из сетевой коллекции клипов Microsoft Word. Для преобра­зования клипа в разметку XAML он был вставлен в документ Word и сохранен как файл XPS, как описано в главе 8. В полученной таким образом разметке XAML используется набор элементов Path.

Читать »

Анимация на основе кадров

Добавлено Дата: 30 March, 2012 категория: Silverlight

Наряду с анимацией на основе свойств, платформа Silverlight предоставляет спосо­бы создания анимации на основе кадров с использованием только кода С#. Для их реа­лизации нужно лишь задать реагирование на статическое событие CompositionTarget. Rendering для извлечения содержимого для каждого кадра. Это довольно низкоуровне­вый подход, и применять его рекомендуется, только если стандартная модель анимации на основе свойств не подходит для решения сложной задачи, такой как создание про­кручиваемых игр, имитация физических эффектов, моделирование столкновения ча­стиц (снежинок, пузырьков) и т.д.

Читать »

Совершенствование приложения To-Do List

Добавлено Дата: 17 March, 2012 категория: Разработка для Android

В следующем примере1  вы добавите поддержку  простого меню в при- ложение To-Do List, которое создали в главе 2 (и улучшили в предыдущих разделах текущей главы).

Вы добавите возможность удалять элементы из списка задач с помощью контекстного  и главного  меню, улучшите  использование экранного  про- странства, отображая  строку ввода только при добавлении  нового пункта.

Читать »

Управление потоком

Добавлено Дата: 17 March, 2012 категория: Silverlight

Когда базовая инфраструктура приложения готова, несложно добавить в нее инди­катор прогресса и средства отмены потока.

Чтобы организовать отмену потока, нужно добавить булево поле, сигнализирую­щее о необходимости прерывания. Код потока периодически проверяет значение бу­лева поля и, когда оно равно true, закрывает поток. Ниже приведен код, добавленный в класс ThreadWrapperBase.

Читать »

Передача данных с помощью BluetoothSocket

Добавлено Дата: 28 February, 2012 категория: Разработка для Android

Установив между собой соединение, оба устройства, клиентское и сервер- ное, получат в распоряжение объекты BluetoothSocket. С этого момента все различия между ними нивелируются: с помощью объектов BluetoothSocket каждое устройство может отправлять и принимать данные.

Читать »

Создание потоков вручную и синхронизация с потоком GUI

Добавлено Дата: 26 February, 2012 категория: Разработка для Android

Хотя использование AsyncTask  — хорошее решение,  случается,  что для работы в фоновом режиме приходится  создавать собственные  потоки и управлять ими.

В этом разделе  вы узнаете, как создавать  и запускать  новые объекты Thread,  синхронизировать их работу с потоком  GUI  перед обновлением пользовательского интерфейса.

Читать »

Обработка событий, основанных на взаимодействии с пользователем

Добавлено Дата: 22 February, 2012 категория: Разработка для Android

Чтобы новое Представление было интерактивным, оно должно реагировать на нажатие клавиш и касание экрана. В Android есть несколько обработчиков событий, которые позволяют реагировать на пользовательский ввод.

onKeyDown. Вызывается при нажатии  любой аппаратной  клавиши, включая  манипулятор D-pad,  клавиатуру, а также кнопки  для теле- фонного вызова, отмены звонка, возврата и управления камерой.

Читать »

Работа с базами данных SQLite

Добавлено Дата: 17 February, 2012 категория: Разработка для Android

Создание вспомогательного класса для упрощения взаимодействий с ба- зой данных — хорошее решение.

В этом разделе вы узнаете, как создавать класс Адаптера для базы дан- ных. Эта абстрактная прослойка  инкапсулирует взаимодействия с базой данных. Она предоставляет интуитивный, строго типизированный способ добавления, удаления  и изменения элементов.  Адаптер базы данных так- же должен обрабатывать  запросы и переопределять методы для создания, открытия и закрытия базы данных. Он также может использоваться как удобное место для размещения статических  констант, относящихся к базе данных (например, имен таблиц и столбцов).

Читать »