├── .gitignore ├── file1.txt ├── src ├── com │ └── javarush │ │ └── test │ │ ├── level01 │ │ └── lesson06 │ │ │ └── task01 │ │ │ └── Solution.java │ │ ├── level02 │ │ └── lesson08 │ │ │ ├── task01 │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ └── Solution.java │ │ │ ├── task05 │ │ │ └── Solution.java │ │ │ └── task06 │ │ │ └── Solution.java │ │ ├── level03 │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson12 │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ └── home03 │ │ │ └── Solution.java │ │ ├── level04 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Cat.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Cat.java │ │ │ ├── task04 │ │ │ │ └── Cat.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ ├── task05 │ │ │ │ └── Solution.java │ │ │ └── task06 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson13 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson16 │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ └── home04 │ │ │ └── Solution.java │ │ ├── level05 │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Cat.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Dog.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── task01 │ │ │ │ └── Friend.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Dog.java │ │ │ ├── task04 │ │ │ │ └── Circle.java │ │ │ └── task05 │ │ │ │ └── Rectangle.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Friend.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Dog.java │ │ │ ├── task04 │ │ │ │ └── Circle.java │ │ │ └── task05 │ │ │ │ └── Rectangle.java │ │ └── lesson12 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ └── home05 │ │ │ └── Solution.java │ │ ├── level06 │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Cat.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ └── task04 │ │ │ │ └── Cat.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Cat.java │ │ │ ├── task02 │ │ │ │ └── Cat.java │ │ │ ├── task03 │ │ │ │ └── Util.java │ │ │ ├── task04 │ │ │ │ └── ConsoleReader.java │ │ │ └── task05 │ │ │ │ └── StringHelper.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Cat.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ └── home07 │ │ │ └── Solution.java │ │ ├── level07 │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson12 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ └── home07 │ │ │ └── Solution.java │ │ ├── level08 │ │ ├── lesson03 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ ├── task05 │ │ │ │ └── Solution.java │ │ │ └── task06 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ └── task04 │ │ │ │ └── Solution.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ └── home09 │ │ │ └── Solution.java │ │ ├── level09 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ └── home09 │ │ │ └── Solution.java │ │ ├── level10 │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level11 │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level12 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson12 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level13 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ └── task04 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ └── task04 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson11 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ ├── Person.java │ │ │ ├── RepkaItem.java │ │ │ ├── RepkaStory.java │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ ├── AbstractRobot.java │ │ │ ├── Attackable.java │ │ │ ├── BodyPart.java │ │ │ ├── Defensable.java │ │ │ ├── Robot.java │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ ├── Solution.java │ │ │ ├── Weather.java │ │ │ └── WeatherType.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level14 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ └── home01 │ │ │ │ ├── BelarusianHen.java │ │ │ │ ├── Country.java │ │ │ │ ├── Hen.java │ │ │ │ ├── MoldovanHen.java │ │ │ │ ├── RussianHen.java │ │ │ │ ├── Solution.java │ │ │ │ └── UkrainianHen.java │ │ └── lesson08 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ ├── Singleton.java │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ ├── Bridge.java │ │ │ ├── Solution.java │ │ │ ├── SuspensionBridge.java │ │ │ └── WaterBridge.java │ │ │ ├── home02 │ │ │ ├── BubblyWine.java │ │ │ ├── Drink.java │ │ │ ├── Solution.java │ │ │ └── Wine.java │ │ │ ├── home03 │ │ │ ├── Person.java │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ ├── CompItem.java │ │ │ ├── Computer.java │ │ │ ├── Keyboard.java │ │ │ ├── Monitor.java │ │ │ ├── Mouse.java │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ ├── Hrivna.java │ │ │ ├── Money.java │ │ │ ├── Solution.java │ │ │ └── USD.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level15 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson12 │ │ │ ├── bonus01 │ │ │ ├── Flyable.java │ │ │ ├── Helicopter.java │ │ │ ├── Plane.java │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ ├── DrinkMaker.java │ │ │ ├── LatteMaker.java │ │ │ ├── Solution.java │ │ │ └── TeaMaker.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ ├── Solution.java │ │ │ └── Tree.java │ │ │ ├── home04 │ │ │ ├── Earth.java │ │ │ ├── Moon.java │ │ │ ├── Planet.java │ │ │ ├── Solution.java │ │ │ └── Sun.java │ │ │ ├── home05 │ │ │ ├── Solution.java │ │ │ └── SubSolution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ ├── Constants.java │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level16 │ │ ├── lesson03 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson13 │ │ │ ├── bonus01 │ │ │ ├── ImageReaderFactory.java │ │ │ ├── Solution.java │ │ │ └── common │ │ │ │ ├── BmpReader.java │ │ │ │ ├── ImageReader.java │ │ │ │ ├── ImageTypes.java │ │ │ │ ├── JpgReader.java │ │ │ │ └── PngReader.java │ │ │ ├── bonus02 │ │ │ ├── Message.java │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level17 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ ├── Person.java │ │ │ ├── Sex.java │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ ├── Person.java │ │ │ ├── Sex.java │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ ├── Cook.java │ │ │ ├── Dishes.java │ │ │ ├── Manager.java │ │ │ ├── Order.java │ │ │ ├── Restaurant.java │ │ │ ├── Table.java │ │ │ └── Waiter.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Beach.java │ │ │ ├── home03 │ │ │ ├── Drug.java │ │ │ ├── DrugsController.java │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ ├── ApplicationContext.java │ │ │ └── Bean.java │ │ │ ├── home08 │ │ │ ├── BankAccount.java │ │ │ ├── Bankomat.java │ │ │ └── NotEnoughMoneyException.java │ │ │ ├── home09 │ │ │ ├── CorruptedDataException.java │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level18 │ │ ├── lesson03 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ ├── AmigoOutputStream.java │ │ │ │ └── QuestionFileOutputStream.java │ │ │ ├── task03 │ │ │ │ └── AmigoOutputStream.java │ │ │ ├── task04 │ │ │ │ ├── TxtInputStream.java │ │ │ │ └── UnsupportedFileNameException.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level19 │ │ ├── lesson03 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ ├── AdapterFileOutputStream.java │ │ │ │ └── AmigoStringWriter.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ ├── Person.java │ │ │ │ ├── PersonScanner.java │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── FileConsoleWriter.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ ├── Person.java │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ ├── home09 │ │ │ └── Solution.java │ │ │ └── home10 │ │ │ └── Solution.java │ │ ├── level20 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ ├── Asset.java │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ ├── Solution.java │ │ │ │ └── User.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ ├── Asset.java │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ ├── Solution.java │ │ │ │ └── User.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ ├── task03 │ │ │ │ └── Solution.java │ │ │ ├── task04 │ │ │ │ └── Solution.java │ │ │ └── task05 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ └── Solution.java │ │ │ ├── bonus02 │ │ │ └── Solution.java │ │ │ ├── bonus03 │ │ │ └── Solution.java │ │ │ ├── home01 │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ └── Solution.java │ │ │ ├── home05 │ │ │ └── Solution.java │ │ │ ├── home06 │ │ │ └── Solution.java │ │ │ ├── home07 │ │ │ └── Solution.java │ │ │ ├── home08 │ │ │ └── Solution.java │ │ │ └── home09 │ │ │ └── Solution.java │ │ ├── level21 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ └── lesson16 │ │ │ └── big01 │ │ │ ├── Hippodrome.java │ │ │ └── Horse.java │ │ ├── level22 │ │ ├── lesson05 │ │ │ ├── home01 │ │ │ │ ├── Solution.java │ │ │ │ ├── Task.java │ │ │ │ ├── ThisUncaughtExceptionHandler.java │ │ │ │ ├── TooShortStringFirstThreadException.java │ │ │ │ └── TooShortStringSecondThreadException.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson13 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ └── lesson18 │ │ │ └── big01 │ │ │ ├── Field.java │ │ │ ├── Figure.java │ │ │ ├── FigureFactory.java │ │ │ ├── KeyboardObserver.java │ │ │ ├── Tetris.java │ │ │ └── Условие задачи.txt │ │ ├── level23 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ ├── DbMock.java │ │ │ │ ├── Solution.java │ │ │ │ └── ViewMock.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── home01 │ │ │ │ ├── AbstractDbSelectExecutor.java │ │ │ │ ├── Solution.java │ │ │ │ └── vo │ │ │ │ │ ├── Location.java │ │ │ │ │ ├── NamedItem.java │ │ │ │ │ ├── Server.java │ │ │ │ │ ├── Subject.java │ │ │ │ │ ├── Subscription.java │ │ │ │ │ └── User.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ └── lesson13 │ │ │ └── big01 │ │ │ ├── KeyboardObserver.java │ │ │ ├── Mouse.java │ │ │ ├── Room.java │ │ │ ├── Snake.java │ │ │ ├── SnakeDirection.java │ │ │ ├── SnakeSection.java │ │ │ └── Условие задачи.txt │ │ ├── level24 │ │ ├── lesson02 │ │ │ ├── home01 │ │ │ │ ├── SelfInterfaceMarker.java │ │ │ │ ├── SelfInterfaceMarkerImpl.java │ │ │ │ ├── Solution.java │ │ │ │ ├── UnsupportedInterfaceMarkerException.java │ │ │ │ └── Util.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ ├── HasHeight.java │ │ │ │ ├── HasWidth.java │ │ │ │ ├── Point.java │ │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ │ ├── Action.java │ │ │ │ ├── FirstClass.java │ │ │ │ ├── SecondClass.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── home02 │ │ │ │ ├── Dog.java │ │ │ │ ├── Mouse.java │ │ │ │ ├── Pet.java │ │ │ │ ├── Sayable.java │ │ │ │ ├── Solution.java │ │ │ │ ├── SuperDog.java │ │ │ │ └── Util.java │ │ │ └── home03 │ │ │ │ ├── Solution.java │ │ │ │ └── Util.java │ │ ├── lesson09 │ │ │ ├── home01 │ │ │ │ ├── Iterator.java │ │ │ │ └── Solution.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ └── lesson14 │ │ │ └── big01 │ │ │ ├── Arcanoid.java │ │ │ ├── Ball.java │ │ │ ├── BaseObject.java │ │ │ ├── Brick.java │ │ │ ├── Canvas.java │ │ │ ├── KeyboardObserver.java │ │ │ ├── Stand.java │ │ │ └── Условие задачи.txt │ │ ├── level25 │ │ ├── lesson02 │ │ │ ├── home01 │ │ │ │ ├── Column.java │ │ │ │ ├── Columnable.java │ │ │ │ └── Solution.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── home01 │ │ │ │ ├── LoggingStateThread.java │ │ │ │ └── Solution.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── home01 │ │ │ │ ├── CustomThreadManipulator.java │ │ │ │ ├── Solution.java │ │ │ │ └── TaskManipulator.java │ │ │ ├── home02 │ │ │ │ ├── CancellableTask.java │ │ │ │ ├── SocketTask.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson11 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ └── lesson16 │ │ │ └── big01 │ │ │ ├── BaseObject.java │ │ │ ├── Bomb.java │ │ │ ├── Canvas.java │ │ │ ├── KeyboardObserver.java │ │ │ ├── Rocket.java │ │ │ ├── Space.java │ │ │ ├── SpaceShip.java │ │ │ ├── Ufo.java │ │ │ └── Условие задачи.txt │ │ ├── level26 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── home01 │ │ │ │ ├── Consumer.java │ │ │ │ ├── Producer.java │ │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ │ ├── Consumer.java │ │ │ │ ├── Producer.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── CashMachine.java │ │ │ ├── ConsoleHelper.java │ │ │ ├── CurrencyManipulator.java │ │ │ ├── CurrencyManipulatorFactory.java │ │ │ ├── Operation.java │ │ │ ├── command │ │ │ ├── Command.java │ │ │ ├── CommandExecutor.java │ │ │ ├── DepositCommand.java │ │ │ ├── ExitCommand.java │ │ │ ├── InfoCommand.java │ │ │ ├── LoginCommand.java │ │ │ └── WithdrawCommand.java │ │ │ ├── exception │ │ │ ├── InterruptOperationException.java │ │ │ └── NotEnoughMoneyException.java │ │ │ ├── resources │ │ │ ├── common_en.properties │ │ │ ├── deposit_en.properties │ │ │ ├── exit_en.properties │ │ │ ├── info_en.properties │ │ │ ├── login_en.properties │ │ │ ├── verifiedCards.properties │ │ │ └── withdraw_en.properties │ │ │ └── Условие задачи.txt │ │ ├── level27 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ ├── Solution.java │ │ │ │ └── ThreadDeadlock.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── home01 │ │ │ │ ├── Apartment.java │ │ │ │ ├── RealEstate.java │ │ │ │ └── Solution.java │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── home01 │ │ │ │ ├── ConsumerTask.java │ │ │ │ ├── ProducerTask.java │ │ │ │ ├── Solution.java │ │ │ │ └── TransferObject.java │ │ │ ├── home02 │ │ │ │ ├── Mail.java │ │ │ │ ├── MailServer.java │ │ │ │ ├── Person.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── ConsoleHelper.java │ │ │ ├── DirectorTablet.java │ │ │ ├── Restaurant.java │ │ │ ├── Tablet.java │ │ │ ├── ad │ │ │ ├── Advertisement.java │ │ │ ├── AdvertisementManager.java │ │ │ ├── AdvertisementStorage.java │ │ │ └── NoVideoAvailableException.java │ │ │ ├── kitchen │ │ │ ├── Cook.java │ │ │ ├── Dish.java │ │ │ ├── Order.java │ │ │ └── Waitor.java │ │ │ ├── statistic │ │ │ ├── StatisticManager.java │ │ │ └── event │ │ │ │ ├── CookedOrderEventDataRow.java │ │ │ │ ├── EventDataRow.java │ │ │ │ ├── EventType.java │ │ │ │ ├── NoAvailableVideoEventDataRow.java │ │ │ │ └── VideoSelectedEventDataRow.java │ │ │ └── Условие задачи.txt │ │ ├── level28 │ │ ├── lesson02 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── home01 │ │ │ │ ├── MyThread.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── home01 │ │ │ │ ├── Character.java │ │ │ │ ├── Plant.java │ │ │ │ ├── Solution.java │ │ │ │ ├── Zombie.java │ │ │ │ └── output.txt │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── Aggregator.java │ │ │ ├── Controller.java │ │ │ ├── model │ │ │ ├── HHStrategy.java │ │ │ ├── Model.java │ │ │ ├── MoikrugStrategy.java │ │ │ ├── Provider.java │ │ │ └── Strategy.java │ │ │ ├── view │ │ │ ├── HtmlView.java │ │ │ ├── View.java │ │ │ ├── backup.html │ │ │ └── vacancies.html │ │ │ ├── vo │ │ │ └── Vacancy.java │ │ │ └── Условие задачи.txt │ │ ├── level29 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ ├── Solution.java │ │ │ │ └── file.txt │ │ ├── lesson05 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson07 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson09 │ │ │ ├── bonus01 │ │ │ │ ├── CacheComputeManager.java │ │ │ │ ├── Computable.java │ │ │ │ ├── Copyright.java │ │ │ │ ├── Solution.java │ │ │ │ └── Square.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── car │ │ │ ├── Cabriolet.java │ │ │ ├── Car.java │ │ │ ├── Sedan.java │ │ │ └── Truck.java │ │ │ ├── human │ │ │ ├── Alive.java │ │ │ ├── BloodGroup.java │ │ │ ├── Human.java │ │ │ ├── Soldier.java │ │ │ ├── Student.java │ │ │ ├── StudentsDataBase.java │ │ │ ├── Teacher.java │ │ │ ├── University.java │ │ │ ├── UniversityPerson.java │ │ │ └── Worker.java │ │ │ ├── user │ │ │ ├── Address.java │ │ │ ├── User.java │ │ │ ├── UserHelper.java │ │ │ └── Work.java │ │ │ └── Условие задачи.txt │ │ ├── level30 │ │ ├── lesson02 │ │ │ ├── home01 │ │ │ │ ├── Number.java │ │ │ │ ├── NumerationSystem.java │ │ │ │ ├── NumerationSystemType.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ └── home01 │ │ │ │ ├── Consumer.java │ │ │ │ ├── Producer.java │ │ │ │ ├── ShareItem.java │ │ │ │ ├── Solution.java │ │ │ │ └── output.txt │ │ ├── lesson06 │ │ │ ├── home01 │ │ │ │ ├── BinaryRepresentationTask.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── home01 │ │ │ │ ├── Pair.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── Connection.java │ │ │ ├── ConsoleHelper.java │ │ │ ├── Message.java │ │ │ ├── MessageType.java │ │ │ ├── Server.java │ │ │ ├── client │ │ │ ├── BotClient.java │ │ │ ├── Client.java │ │ │ ├── ClientGuiController.java │ │ │ ├── ClientGuiModel.java │ │ │ └── ClientGuiView.java │ │ │ └── Условие задачи.txt │ │ ├── level31 │ │ ├── lesson02 │ │ │ ├── home01 │ │ │ │ └── Solution.java │ │ │ └── home02 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ └── Solution.java │ │ │ └── home02 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── bonus01 │ │ │ │ └── Solution.java │ │ │ └── home01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── home01 │ │ │ │ ├── ConcreteFileData.java │ │ │ │ ├── FileData.java │ │ │ │ ├── NullFileData.java │ │ │ │ └── Solution.java │ │ │ └── home02 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ └── home01 │ │ │ │ ├── Solution.java │ │ │ │ ├── properties.txt │ │ │ │ └── properties.xml │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── Archiver.java │ │ │ ├── CommandExecutor.java │ │ │ ├── ConsoleHelper.java │ │ │ ├── FileManager.java │ │ │ ├── FileProperties.java │ │ │ ├── Operation.java │ │ │ ├── ZipFileManager.java │ │ │ ├── command │ │ │ ├── Command.java │ │ │ ├── ExitCommand.java │ │ │ ├── ZipAddCommand.java │ │ │ ├── ZipCommand.java │ │ │ ├── ZipContentCommand.java │ │ │ ├── ZipCreateCommand.java │ │ │ ├── ZipExtractCommand.java │ │ │ └── ZipRemoveCommand.java │ │ │ ├── exception │ │ │ ├── PathIsNotFoundException.java │ │ │ └── WrongZipFileException.java │ │ │ └── Условие задачи.txt │ │ ├── level32 │ │ ├── lesson02 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── bonus01 │ │ │ │ ├── Big.java │ │ │ │ ├── Item.java │ │ │ │ ├── ItemInvocationHandler.java │ │ │ │ ├── Small.java │ │ │ │ └── Solution.java │ │ │ └── home01 │ │ │ │ ├── CustomInvocationHandler.java │ │ │ │ ├── Solution.java │ │ │ │ ├── SomeInterfaceWithMethods.java │ │ │ │ └── SomeInterfaceWithMethodsImpl.java │ │ ├── lesson10 │ │ │ └── home01 │ │ │ │ ├── DoubleString.java │ │ │ │ ├── DoubleStringImpl.java │ │ │ │ └── Solution.java │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── Controller.java │ │ │ ├── ExceptionHandler.java │ │ │ ├── HTMLFileFilter.java │ │ │ ├── MenuHelper.java │ │ │ ├── View.java │ │ │ ├── actions │ │ │ ├── RedoAction.java │ │ │ ├── StrikeThroughAction.java │ │ │ ├── SubscriptAction.java │ │ │ ├── SuperscriptAction.java │ │ │ └── UndoAction.java │ │ │ ├── listeners │ │ │ ├── FrameListener.java │ │ │ ├── TabbedPaneChangeListener.java │ │ │ ├── TextEditMenuListener.java │ │ │ ├── UndoListener.java │ │ │ └── UndoMenuListener.java │ │ │ └── Условие задачи.txt │ │ ├── level33 │ │ ├── lesson05 │ │ │ ├── home01 │ │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ │ └── Solution.java │ │ │ ├── home03 │ │ │ │ └── Solution.java │ │ │ ├── home04 │ │ │ │ └── Solution.java │ │ │ └── home05 │ │ │ │ ├── Auto.java │ │ │ │ ├── Car.java │ │ │ │ ├── Motorbike.java │ │ │ │ ├── Parking.java │ │ │ │ ├── RaceBike.java │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── home01 │ │ │ │ └── Solution.java │ │ │ └── home02 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ ├── bonus01 │ │ │ │ └── Solution.java │ │ │ └── home01 │ │ │ │ ├── Shop.java │ │ │ │ ├── Solution.java │ │ │ │ └── data.xml │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── ExceptionHandler.java │ │ │ ├── Helper.java │ │ │ ├── Shortener.java │ │ │ ├── Solution.java │ │ │ ├── strategies │ │ │ ├── DualHashBidiMapStorageStrategy.java │ │ │ ├── Entry.java │ │ │ ├── FileBucket.java │ │ │ ├── FileStorageStrategy.java │ │ │ ├── HashBiMapStorageStrategy.java │ │ │ ├── HashMapStorageStrategy.java │ │ │ ├── OurHashBiMapStorageStrategy.java │ │ │ ├── OurHashMapStorageStrategy.java │ │ │ └── StorageStrategy.java │ │ │ ├── tests │ │ │ ├── FunctionalTest.java │ │ │ └── SpeedTest.java │ │ │ └── Условие задачи.txt │ │ ├── level34 │ │ ├── lesson02 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ ├── lesson04 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── bonus01 │ │ │ │ ├── Cache.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson10 │ │ │ └── home01 │ │ │ │ ├── Solution.java │ │ │ │ └── log4j.properties │ │ └── lesson15 │ │ │ └── big01 │ │ │ ├── controller │ │ │ ├── Controller.java │ │ │ └── EventListener.java │ │ │ ├── model │ │ │ ├── Box.java │ │ │ ├── CollisionObject.java │ │ │ ├── Direction.java │ │ │ ├── GameObject.java │ │ │ ├── GameObjects.java │ │ │ ├── Home.java │ │ │ ├── LevelLoader.java │ │ │ ├── Model.java │ │ │ ├── Movable.java │ │ │ ├── Player.java │ │ │ └── Wall.java │ │ │ ├── res │ │ │ └── levels.txt │ │ │ ├── view │ │ │ ├── Field.java │ │ │ └── View.java │ │ │ └── Условие задачи.txt │ │ ├── level35 │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ ├── GenericStatic.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── home01 │ │ │ │ ├── ClassForGenerics.java │ │ │ │ ├── InterfaceForGenerics.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── bonus01 │ │ │ │ ├── Convertable.java │ │ │ │ ├── ConvertableBook.java │ │ │ │ ├── ConvertableUser.java │ │ │ │ ├── ConvertableUtil.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ ├── Animal.java │ │ │ ├── Solution.java │ │ │ └── data │ │ │ │ └── Cat.java │ │ │ └── task02 │ │ │ └── Solution.java │ │ ├── level36 │ │ ├── lesson04 │ │ │ ├── big01 │ │ │ │ ├── Solution.java │ │ │ │ ├── Util.java │ │ │ │ ├── bean │ │ │ │ │ └── User.java │ │ │ │ ├── controller │ │ │ │ │ └── Controller.java │ │ │ │ ├── dao │ │ │ │ │ ├── UserDao.java │ │ │ │ │ └── mock │ │ │ │ │ │ └── DataSource.java │ │ │ │ ├── model │ │ │ │ │ ├── FakeModel.java │ │ │ │ │ ├── MainModel.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── ModelData.java │ │ │ │ │ └── service │ │ │ │ │ │ ├── UserService.java │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── view │ │ │ │ │ ├── EditUserView.java │ │ │ │ │ ├── UsersView.java │ │ │ │ │ └── View.java │ │ │ │ └── Условие задачи.txt │ │ │ └── home01 │ │ │ │ ├── Controller.java │ │ │ │ ├── Model.java │ │ │ │ ├── Service.java │ │ │ │ ├── Solution.java │ │ │ │ └── View.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── bonus01 │ │ │ │ ├── NodeHelperTestSolution.java │ │ │ │ ├── RedBlackTree.java │ │ │ │ └── Solution.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── bonus01 │ │ │ ├── HiddenClass.java │ │ │ ├── Solution.java │ │ │ └── data │ │ │ │ └── second │ │ │ │ ├── HiddenClassImplFirst.java │ │ │ │ ├── HiddenClassImplSecond.java │ │ │ │ └── PackageAccessClass.java │ │ │ └── task01 │ │ │ └── Solution.java │ │ ├── level37 │ │ ├── lesson04 │ │ │ ├── big01 │ │ │ │ ├── AbstractFactory.java │ │ │ │ ├── FactoryProducer.java │ │ │ │ ├── Human.java │ │ │ │ ├── Solution.java │ │ │ │ ├── female │ │ │ │ │ ├── FemaleFactory.java │ │ │ │ │ ├── KidGirl.java │ │ │ │ │ ├── TeenGirl.java │ │ │ │ │ └── Woman.java │ │ │ │ ├── male │ │ │ │ │ ├── KidBoy.java │ │ │ │ │ ├── MaleFactory.java │ │ │ │ │ ├── Man.java │ │ │ │ │ └── TeenBoy.java │ │ │ │ └── Условие.txt │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson06 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ ├── task02 │ │ │ │ └── Solution.java │ │ │ └── task03 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── big01 │ │ │ ├── AmigoSet.java │ │ │ ├── HashMapReflectionHelper.java │ │ │ └── Условие.txt │ │ │ └── task01 │ │ │ └── Solution.java │ │ ├── level38 │ │ ├── lesson04 │ │ │ ├── home01 │ │ │ │ ├── NameChecker.java │ │ │ │ ├── NameIsEmptyException.java │ │ │ │ ├── NameIsNullException.java │ │ │ │ └── Solution.java │ │ │ ├── task01 │ │ │ │ └── VeryComplexClass.java │ │ │ └── task02 │ │ │ │ └── VeryComplexClass.java │ │ ├── lesson06 │ │ │ ├── home01 │ │ │ │ ├── ExceptionApplicationMessage.java │ │ │ │ ├── ExceptionDBMessage.java │ │ │ │ ├── ExceptionFactory.java │ │ │ │ ├── ExceptionUserMessage.java │ │ │ │ └── Solution.java │ │ │ ├── home02 │ │ │ │ ├── Connection.java │ │ │ │ ├── ConnectionException.java │ │ │ │ ├── ConnectionMock.java │ │ │ │ ├── Solution.java │ │ │ │ ├── SolutionException.java │ │ │ │ └── WrongDataException.java │ │ │ └── task01 │ │ │ │ └── Solution.java │ │ ├── lesson08 │ │ │ ├── task01 │ │ │ │ └── Solution.java │ │ │ └── task02 │ │ │ │ └── Solution.java │ │ └── lesson10 │ │ │ ├── home01 │ │ │ ├── IncorrectAccount.java │ │ │ ├── JavaRushBankAccount.java │ │ │ ├── LongPositive.java │ │ │ ├── ReflectionAnnotationUtil.java │ │ │ └── Solution.java │ │ │ └── home02 │ │ │ ├── Author.java │ │ │ ├── Changelog.java │ │ │ ├── Date.java │ │ │ ├── Position.java │ │ │ ├── Revision.java │ │ │ └── Solution.java │ │ ├── level39 │ │ └── lesson09 │ │ │ └── big01 │ │ │ ├── Event.java │ │ │ ├── LogParser.java │ │ │ ├── Solution.java │ │ │ ├── Status.java │ │ │ ├── query │ │ │ └── IPQuery.java │ │ │ └── Условие задачи.txt │ │ └── level40 │ │ ├── lesson04 │ │ ├── task01 │ │ │ └── Solution.java │ │ └── task02 │ │ │ └── Solution.java │ │ └── lesson06 │ │ └── task01 │ │ └── Solution.java ├── libs │ ├── activation-1.1.jar │ ├── commons-codec-1.9.jar │ ├── commons-collections4-4.1.jar │ ├── commons-logging-1.2.jar │ ├── core-1.0.3.jar │ ├── guava-18.0-extended-1.0.3.jar │ ├── guava-18.0.jar │ ├── hamcrest-core-1.3.jar │ ├── httpclient-4.5.1.jar │ ├── httpcore-4.4.3.jar │ ├── jackson-annotations-2.6.3.jar │ ├── jackson-core-2.6.3.jar │ ├── jackson-databind-2.6.3.jar │ ├── jsoup-1.8.3-sources.jar │ ├── jsoup-1.8.3.jar │ ├── jsr305-3.0.1.jar │ ├── junit-4.12.jar │ ├── mail-1.4.7.jar │ └── slf4j-log4j13-1.0.1.jar └── test │ └── lesson28 │ └── document.html ├── test1.txt ├── test1.txt.txt └── your.file.name /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.ipr 3 | *.iml 4 | *.iws 5 | *.log 6 | *.bak 7 | *~ 8 | ~* 9 | .DS_Store 10 | .DS_Store? 11 | ._* 12 | .Spotlight-V100 13 | .Trashes 14 | Icon? 15 | ehthumbs.db 16 | Thumbs.db 17 | desktop.ini 18 | nohup.out 19 | *.db 20 | target/ 21 | JavaRushPlugin.properties -------------------------------------------------------------------------------- /file1.txt: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/com/javarush/test/level02/lesson08/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level02.lesson08.task01; 2 | 3 | /* Минимум двух чисел 4 | Написать функцию, которая возвращает минимум из двух чисел. 5 | */ 6 | public class Solution 7 | { 8 | public static int min(int a, int b) 9 | { 10 | int m2; 11 | if (a < b) 12 | m2 = a; 13 | else 14 | m2 = b; 15 | 16 | return m2; 17 | } 18 | 19 | public static void main(String[] args) 20 | { 21 | int n1 = 4; 22 | int n2 = 5; 23 | int c = min(n1, n2); 24 | System.out.println("Minimun is = " + c); 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level02/lesson08/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level02.lesson08.task02; 2 | 3 | /* Максимум двух чисел 4 | Написать функцию, которая вычисляет максимум из двух чисел. 5 | */ 6 | public class Solution 7 | { 8 | public static int max(int a, int b) 9 | { 10 | int m2; 11 | if (a > b) 12 | m2 = a; 13 | else 14 | m2 = b; 15 | 16 | return m2; 17 | 18 | } 19 | 20 | public static void main(String[] args) 21 | { 22 | int n1 = 4; 23 | int n2 = 5; 24 | int c = max(n1, n2); 25 | System.out.println("Maximum is = " + c); 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level02/lesson08/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level02.lesson08.task03; 2 | 3 | /* Минимум трех чисел 4 | Написать функцию, которая вычисляет минимум из трёх чисел. 5 | */ 6 | public class Solution 7 | { 8 | public static int min(int a, int b, int c) 9 | { 10 | int m2; 11 | if (a < b & a < c) 12 | m2 = a; 13 | else if (b < a & b < c) 14 | m2 = b; 15 | else 16 | m2 = c; 17 | return m2; 18 | } 19 | 20 | public static void main(String[] args) 21 | { 22 | int n1 = 4; 23 | int n2 = 5; 24 | int n3 = 8; 25 | int cm = min(n1, n2, n3); 26 | System.out.println("Minimum is = " + cm); 27 | } 28 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level02/lesson08/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level02.lesson08.task05; 2 | 3 | /* Дублирование строки 4 | Написать функцию, которая выводит переданную строку на экран три раза, каждый раз с новой строки. 5 | */ 6 | public class Solution 7 | { 8 | public static void print3(String s) 9 | { 10 | System.out.println(s); 11 | System.out.println(s); 12 | System.out.println(s); 13 | 14 | } 15 | 16 | public static void main(String[] args) 17 | { 18 | String l = "test"; 19 | print3(l); 20 | } 21 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level02/lesson08/task06/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level02.lesson08.task06; 2 | 3 | /* Вывод текста на экран 4 | Написать функцию, которая выводит переданную строку (слово) на экран три раза, но в одной строке. 5 | Слова должны быть разделены пробелом и не должны сливаться в одно. 6 | */ 7 | public class Solution 8 | { 9 | public static void print3(String s) 10 | { 11 | System.out.print(s + " " + s + " " + s); 12 | 13 | } 14 | 15 | public static void main(String[] args) 16 | { 17 | String l = "test"; 18 | print3(l); 19 | } 20 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson04/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson04.task01; 2 | 3 | /* Дата рождения 4 | Вывести на экран дату своего рождения в виде: MAY 1 2012 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | System.out.println("AUGUST" + " " + "1" + " " + "1987"); 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson04/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson04.task02; 2 | 3 | /* Мое имя 4 | Вывести на экран свое имя 5 строк по 10 раз (через пробел). 5 | */ 6 | 7 | public class Solution 8 | { 9 | 10 | 11 | 12 | public static void main(String[] args) 13 | { 14 | 15 | String name = "Artem"; 16 | 17 | for (int s=1; s<=5; s++ ) { 18 | for (int l=1; l <= 10; l++ ) { 19 | System.out.print(name + " "); 20 | } 21 | System.out.println(); 22 | } 23 | 24 | 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson04/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson04.task03; 2 | 3 | /* Бендер мой любимый учитель 4 | Вывести на экран 'Бендер мой любимый учитель' 1 раз. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | System.out.println("Бендер мой любимый учитель"); 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson04/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson04.task04; 2 | 3 | /* Произведение 10 чисел 4 | Вывести на экран произведение 10 чисел от 1 до 10. Результат - 1 число. 5 | Подсказка: будет три миллиона с хвостиком. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | System.out.println(1*2*3*4*5*6*7*8*9*10); 13 | 14 | } 15 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson06/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson06.task04; 2 | 3 | /* Путь к файлу java.exe 4 | Выведи на экран текст: полное имя файла java.exe из установленного пакета java 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | String test = "C:\\Program Files\\Java\\jdk1.7.0_25\\bin\\java.exe"; 12 | System.out.println(test); 13 | 14 | } 15 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson06/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson06.task05; 2 | 3 | /* Изучаем японский 4 | Выведи на экран 日本語 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | String s = "日本語"; 12 | System.out.println(s); 13 | } 14 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson08/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson08.task03; 2 | 3 | /* Скромность украшает человека 4 | Ввести с клавиатуры имя и вывести надпись: 5 | name зарабатывает $5,000. Ха-ха-ха! 6 | Пример: Тимур зарабатывает $5,000. Ха-ха-ха! 7 | */ 8 | 9 | import java.io.BufferedReader; 10 | import java.io.InputStreamReader; 11 | 12 | public class Solution 13 | { 14 | public static void main(String[] args) throws Exception 15 | { 16 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 17 | 18 | String name = reader.readLine(); 19 | 20 | System.out.println(name + " зарабатывает $5,000. Ха-ха-ха!"); 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson12/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson12.home01; 2 | 3 | /* Жить хорошо, а хорошо жить еще лучше 4 | Вывести на экран надпись «Жить хорошо, а хорошо жить еще лучше» 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | System.out.println("Жить хорошо, а хорошо жить еще лучше"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson12/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson12.home02; 2 | 3 | /* Я не хочу изучать Java, я хочу большую зарплату 4 | Вывести на экран десять раз надпись «Я не хочу изучать Java, я хочу большую зарплату» 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | for (int i = 1; i <=10; i++) { 12 | System.out.println("Я не хочу изучать Java, я хочу большую зарплату"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level03/lesson12/home03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level03.lesson12.home03; 2 | 3 | /* Я буду зарабатывать $50 в час 4 | Ввести с клавиатуры число n. 5 | Вывести на экран надпись «Я буду зарабатывать $n в час». 6 | Пример: 7 | Я буду зарабатывать $50 в час 8 | */ 9 | 10 | import java.io.BufferedReader; 11 | import java.io.InputStreamReader; 12 | 13 | public class Solution 14 | { 15 | public static void main(String[] args) throws Exception 16 | { 17 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 18 | 19 | String mn = reader.readLine(); 20 | int money = Integer.parseInt(mn); 21 | System.out.println("Я буду зарабатывать $" + money + " в час"); 22 | 23 | 24 | } 25 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson02/task01/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson02.task01; 2 | 3 | /* Реализовать метод setName 4 | Реализовать метод setName, чтобы с его помощью можно было устанавливать 5 | значение переменной private String name равное переданному параметру String name. 6 | */ 7 | 8 | public class Cat { 9 | private String name; 10 | 11 | public void setName(String name) { 12 | this.name = name; 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson02/task02/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson02.task02; 2 | 3 | /* Реализовать метод addNewCat 4 | Реализовать метод addNewCat, чтобы при его вызове (т.е. добавлении нового кота), количество котов увеличивалось на 1. За количество котов отвечает переменная catsCount. 5 | */ 6 | 7 | public class Cat { 8 | private static int catsCount = 0; 9 | 10 | public static void addNewCat() { 11 | Cat cat = new Cat(); 12 | catsCount ++; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson02/task03/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson02.task03; 2 | 3 | /* Реализовать метод setCatsCount 4 | Реализовать метод setCatsCount так, чтобы с его помощью можно было 5 | устанавливать значение переменной catsCount равное переданному параметру. 6 | */ 7 | 8 | public class Cat { 9 | private static int catsCount = 0; 10 | 11 | public static void setCatsCount(int catsCount) { 12 | Cat.catsCount = catsCount; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson02/task04/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson02.task04; 2 | 3 | /* Реализовать метод setName 4 | Реализовать метод setName, чтобы с его помощью можно было устанавливать 5 | значение переменной private String fullName равное значению локальной переменной String fullName. 6 | */ 7 | 8 | public class Cat { 9 | private String fullName; 10 | 11 | public void setName(String firstName, String lastName) { 12 | String fullName = firstName + " " + lastName; 13 | 14 | this.fullName = fullName; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson02/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson02.task05; 2 | 3 | /* Подсчитать количество котов 4 | Написать код, чтобы правильно считалось количество созданных котов (count) 5 | и на экран выдавалось правильно их количество. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | Cat cat1 = new Cat(); 13 | Cat.count ++; 14 | 15 | Cat cat2 = new Cat(); 16 | Cat.count ++; 17 | 18 | System.out.println("Cats count is " + Cat.count); 19 | } 20 | public static class Cat 21 | { 22 | public static int count = 0; 23 | } 24 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson06/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson06.task05; 2 | 3 | /* 18+ 4 | Ввести с клавиатуры имя и возраст. Если возраст меньше 18 вывести надпись «Подрасти еще». 5 | */ 6 | 7 | import java.io.BufferedReader; 8 | import java.io.InputStreamReader; 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) throws Exception 13 | { 14 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 15 | 16 | String name = reader.readLine(); 17 | String sAge = reader.readLine(); 18 | 19 | int age = Integer.parseInt(sAge); 20 | 21 | if (age < 18) { 22 | System.out.println("Подрасти еще"); 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson10/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson10.task01; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.InputStreamReader; 5 | 6 | /* 10 чисел 7 | Вывести на экран числа от 1 до 10 используя цикл while. 8 | */ 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) throws Exception 13 | { 14 | int i = 1; 15 | 16 | while (i<=10) { 17 | System.out.println(i); 18 | i++; 19 | } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson10/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson10.task02; 2 | 3 | /* 10 чисел наоборот 4 | Вывести на экран числа от 10 до 1 используя цикл while. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | int i = 10; 12 | 13 | while (i>=1) { 14 | System.out.println(i); 15 | i--; 16 | } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson10/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson10.task04; 2 | 3 | /* S-квадрат 4 | Вывести на экран квадрат из 10х10 букв S используя цикл while. Буквы в одной строке не разделять. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | int n = 1; 12 | int i; 13 | while (n < 11) 14 | { 15 | i = 1; 16 | while (i < 11) 17 | { 18 | System.out.print("S"); 19 | i++; 20 | } 21 | 22 | n++; 23 | if (n <= 10) 24 | System.out.println(); 25 | } 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson10/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson10.task05; 2 | 3 | /* Таблица умножения 4 | Вывести на экран таблицу умножения 10х10 используя цикл while. Числа разделить пробелом. 5 | 1 2 3 4 5 6 7 8 9 10 6 | 2 4 6 8 10 12 14 16 18 20 7 | ... 8 | */ 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) throws Exception 13 | { 14 | int i = 1, j; 15 | while (i <= 10) { 16 | j = 1; 17 | while (j <= 10) { 18 | System.out.print(i * j + " "); 19 | j++; 20 | } 21 | System.out.println(); 22 | i++; 23 | 24 | 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson13/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson13.task01; 2 | 3 | /* Четные числа 4 | Используя цикл for вывести на экран чётные числа от 1 до 100 включительно. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | for (int i = 2; i <= 100; i+=2) 12 | System.out.println(i); 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson13/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson13.task03; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.InputStreamReader; 5 | 6 | /* Рисуем треугольник 7 | Используя цикл for вывести на экран прямоугольный треугольник из восьмёрок со сторонами 10 и 10. 8 | Пример: 9 | 8 10 | 88 11 | 888 12 | ... 13 | */ 14 | 15 | public class Solution 16 | { 17 | public static void main(String[] args) throws Exception 18 | { 19 | for (int i = 10; i > 0; i--) { 20 | for (int j = 0; j < i; j++) 21 | System.out.print("8"); 22 | System.out.println(); 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson13/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson13.task04; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.InputStreamReader; 5 | 6 | /* Рисуем линии 7 | Используя цикл for вывести на экран: 8 | - горизонтальную линию из 10 восьмёрок 9 | - вертикальную линию из 10 восьмёрок. 10 | */ 11 | 12 | public class Solution 13 | { 14 | public static void main(String[] args) throws Exception 15 | { 16 | for (int i = 1; i <10; i++){ 17 | System.out.print("8"); 18 | } 19 | for (int j = 0; j <=10; j++){ 20 | System.out.println("8"); 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson13/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson13.task05; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.InputStreamReader; 5 | 6 | /* Все любят Мамбу 7 | Ввести с клавиатуры имя и используя цикл for 10 раз вывести: [*имя* любит меня.] 8 | Пример текста: 9 | Света любит меня. 10 | */ 11 | 12 | public class Solution 13 | { 14 | public static void main(String[] args) throws Exception 15 | { 16 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 17 | String name = reader.readLine(); 18 | 19 | for (int i = 0; i < 10; i++) { 20 | System.out.println(name + " любит меня."); 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level04/lesson16/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level04.lesson16.home01; 2 | 3 | /* Я никогда не буду работать за копейки 4 | Используя цикл вывести на экран сто раз надпись: 5 | «Я никогда не буду работать за копейки. Амиго» 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | String t = "Я никогда не буду работать за копейки. Амиго"; 13 | for (int i = 0; i < 100; i++ ) { 14 | System.out.println(t); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson05/task01/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson05.task01; 2 | 3 | /* Создать класс Cat 4 | Создать класс Cat. У кота должно быть имя (name, String), возраст (age, int), вес (weight, int), сила (strength, int). 5 | */ 6 | 7 | public class Cat 8 | { 9 | String name; 10 | int age; 11 | int weight; 12 | int strength; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson05/task03/Dog.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson05.task03; 2 | 3 | /* Геттеры и сеттеры для класса Dog 4 | Создать class Dog. У собаки должна быть кличка String name и возраст int age. 5 | Создайте геттеры и сеттеры для всех переменных класса Dog. 6 | */ 7 | 8 | public class Dog { 9 | 10 | String name; 11 | int age; 12 | 13 | public String getName() 14 | { 15 | return name; 16 | } 17 | 18 | public int getAge() 19 | { 20 | return age; 21 | } 22 | 23 | public void setName(String name) 24 | { 25 | this.name = name; 26 | } 27 | 28 | public void setAge(int age) 29 | { 30 | this.age = age; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson07/task01/Friend.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson07.task01; 2 | 3 | /* Создать класс Friend 4 | Создать класс Friend (друг) с тремя инициализаторами (тремя методами initialize): 5 | - Имя 6 | - Имя, возраст 7 | - Имя, возраст, пол 8 | */ 9 | 10 | public class Friend 11 | { 12 | public void initialize (String name) {} 13 | 14 | public void initialize (String name, int age) {} 15 | 16 | public void initialize (String name, int age, String sex){} 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson09/task01/Friend.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson09.task01; 2 | 3 | /* Создать класс Friend 4 | Создать класс Friend (друг) с тремя конструкторами: 5 | - Имя 6 | - Имя, возраст 7 | - Имя, возраст, пол 8 | */ 9 | 10 | public class Friend 11 | { 12 | private String name; 13 | private int age; 14 | private String sex; 15 | 16 | public Friend(String name) { 17 | this.name = name; 18 | } 19 | 20 | public Friend(String name, int age) { 21 | this.name = name; 22 | this.age = age; 23 | } 24 | 25 | public Friend(String name, int age, String sex) { 26 | this.name = name; 27 | this.age = age; 28 | this.sex = sex; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson09/task03/Dog.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson09.task03; 2 | 3 | /* Создать класс Dog 4 | Создать класс Dog (собака) с тремя конструкторами: 5 | - Имя 6 | - Имя, рост 7 | - Имя, рост, цвет 8 | */ 9 | 10 | public class Dog 11 | { 12 | private String name; 13 | private int height; 14 | private String color; 15 | 16 | Dog(String name) { 17 | this.name = name; 18 | 19 | } 20 | 21 | Dog(String name, int height) { 22 | this.name = name; 23 | this.height = height; 24 | 25 | } 26 | 27 | Dog(String name, int height, String color) { 28 | this.name = name; 29 | this.height = height; 30 | this.color = color; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson12/bonus01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson12.bonus01; 2 | 3 | import java.io.*; 4 | 5 | /* Нужно исправить программу, чтобы компилировалась и работала 6 | Задача: Программа вводит два числа с клавиатуры и выводит их сумму на экран. 7 | */ 8 | 9 | public class Solution 10 | { 11 | public static void main(String[] args) throws Exception 12 | { 13 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 14 | String sa = reader.readLine(); 15 | String sb = reader.readLine(); 16 | int a = Integer.parseInt(sa); 17 | int b = Integer.parseInt(sb); 18 | 19 | int sum = a + b; 20 | System.out.println("Sum = " + sum); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level05/lesson12/home04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level05.lesson12.home04; 2 | 3 | /* Вывести на экран сегодняшнюю дату 4 | Вывести на экран текущую дату в аналогичном виде "21 12 2012". 5 | */ 6 | 7 | 8 | import java.text.SimpleDateFormat; 9 | import java.util.Calendar; 10 | import java.util.GregorianCalendar; 11 | 12 | public class Solution 13 | { 14 | public static void main(String[] args) 15 | { 16 | SimpleDateFormat format = new SimpleDateFormat("dd MM yyyy"); 17 | Calendar currentTime = new GregorianCalendar(); 18 | System.out.println(format.format(currentTime.getTime())); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson05/task01/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson05.task01; 2 | 3 | /* Метод finalize класса Cat 4 | В классе Cat создать метод protected void finalize() throws Throwable 5 | */ 6 | 7 | public class Cat 8 | { 9 | protected void finalize() throws Throwable { 10 | 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson05/task02/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson05.task02; 2 | 3 | /* Классы Cat и Dog и метод finalize для каждого 4 | В каждом классе Cat и Dog написать метод finalize, который выводит на экран текст о том, что такой-то объект уничтожен. 5 | */ 6 | 7 | public class Cat 8 | { 9 | 10 | protected void finalize() throws Throwable { 11 | System.out.println("Объект уничтожен"); 12 | } 13 | 14 | } 15 | 16 | class Dog 17 | { 18 | 19 | protected void finalize() throws Throwable { 20 | System.out.println("Объект уничтожен"); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson05/task04/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson05.task04; 2 | 3 | /* Cчётчик котов 4 | В конструкторе класса Cat [public Cat()] увеличивать счётчик котов (статическую переменную этого же класса catCount) на 1. 5 | В методе finalize уменьшать на 1. 6 | */ 7 | 8 | public class Cat 9 | { 10 | public static int catCount = 0; 11 | 12 | public Cat() { 13 | catCount ++; 14 | } 15 | 16 | protected void finalize() throws Throwable { 17 | catCount --; 18 | } 19 | 20 | public static void main(String[] args) { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson08/task01/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson08.task01; 2 | 3 | /* Класс Cat и статическая переменная catCount 4 | Создать статическую переменную int catCount в классе Cat. Создай конструктор [public Cat()], 5 | в котором увеличивай данную переменную на 1. 6 | */ 7 | 8 | public class Cat 9 | { 10 | 11 | static int catCount =0; 12 | 13 | public Cat() { 14 | Cat.catCount ++; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson08/task02/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson08.task02; 2 | 3 | /* Статические методы: int getCatCount() и setCatCount(int) 4 | Добавить к классу Cat два статических метода: int getCatCount() и setCatCount(int), 5 | с помощью которых можно получить/изменить количество котов (переменную catCount) 6 | */ 7 | 8 | public class Cat 9 | { 10 | private static int catCount = 0; 11 | 12 | public Cat() 13 | { 14 | catCount++; 15 | } 16 | 17 | public static int getCatCount() 18 | { 19 | return catCount; 20 | 21 | } 22 | 23 | public static void setCatCount(int catCount) 24 | { 25 | Cat.catCount = catCount; 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson08/task03/Util.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson08.task03; 2 | 3 | /* Класс Util 4 | Реализовать статический метод double getDistance(x1, y1, x2, y2). Он должен вычислять расстояние между точками. 5 | Используй метод double Math.sqrt(double a), который вычисляет квадратный корень переданного параметра 6 | */ 7 | 8 | public class Util 9 | { 10 | public static double getDistance(int x1, int y1, int x2, int y2) 11 | { 12 | return Math.sqrt( (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) ); 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson11/home03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson11.home03; 2 | 3 | /* Переставь один модификатор static 4 | Переставь один модификатор static, чтобы пример скомпилировался. 5 | */ 6 | 7 | public class Solution 8 | { 9 | 10 | public static int A = 5; 11 | public int B = 2; 12 | public int C = A*B; 13 | 14 | public static void main(String[] args) 15 | { 16 | A = 15; 17 | } 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson11/home06/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson11.home06; 2 | 3 | /* KissMyShinyMetalAss 4 | Создай класс с именем KissMyShinyMetalAss. Создай объект этого класса, выведи его на экран. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | KissMyShinyMetalAss kiss = new KissMyShinyMetalAss(); 12 | System.out.println(kiss); 13 | } 14 | 15 | public static class KissMyShinyMetalAss { 16 | 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level06/lesson11/home07/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level06.lesson11.home07; 2 | 3 | import java.util.ArrayList; 4 | 5 | /* Три статические переменных name 6 | Создай 3 public статических переменных: String Solution.name, String Cat.name, String Dog.name 7 | */ 8 | 9 | public class Solution 10 | { 11 | 12 | public static String name; 13 | 14 | public static class Cat { 15 | 16 | public static String name; 17 | } 18 | 19 | public static class Dog { 20 | 21 | public static String name; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level07/lesson12/home07/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level07.lesson12.home07; 2 | 3 | /* Переставь один модификатор static 4 | Переставь один модификатор static, чтобы пример скомпилировался. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static int A = 5; 10 | public static int B = 2; 11 | public static int C = A*B; 12 | 13 | public static void main(String[] args) 14 | { 15 | } 16 | 17 | public int getValue() 18 | { 19 | return C; 20 | } 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level08/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level08.lesson06.task01; 2 | 3 | import java.util.*; 4 | 5 | /* Создать два списка LinkedList и ArrayList 6 | Нужно создать два списка – LinkedList и ArrayList. 7 | */ 8 | 9 | public class Solution 10 | { 11 | public static Object createArrayList() 12 | { 13 | ArrayList list = new ArrayList(); 14 | return list; 15 | 16 | } 17 | 18 | public static Object createLinkedList() 19 | { 20 | LinkedList list2 = new LinkedList(); 21 | return list2; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level08/lesson11/home07/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level08.lesson11.home07; 2 | 3 | /* Переставь один модификатор static 4 | Переставь один модификатор static, чтобы пример скомпилировался. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static int A = 5; 10 | public static int B = 2; 11 | 12 | public int C = A*B; 13 | public static int D = B*A; 14 | 15 | public static void main(String[] args) 16 | { 17 | } 18 | 19 | public int getValue() 20 | { 21 | return D; 22 | } 23 | 24 | public int getValue2() 25 | { 26 | return C; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson02/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson02.task05; 2 | 3 | /* Метод должен возвращать результат – глубину её стек-трейса 4 | Написать метод, который возвращает результат – глубину его стек трейса – количество методов в нем (количество элементов в списке). 5 | Это же число метод должен выводить на экран. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static int getStackTraceDeep() 11 | { 12 | StackTraceElement[] traceElements = Thread.currentThread().getStackTrace(); 13 | 14 | System.out.println(traceElements.length); 15 | 16 | return traceElements.length; 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson06.task01; 2 | 3 | /* Исключение при работе с числами 4 | Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода: 5 | int a = 42 / 0; 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) throws Exception 11 | { 12 | try { 13 | 14 | int a = 42/0; 15 | } 16 | catch (ArithmeticException e) { 17 | System.out.println(e); 18 | } 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson06/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson06.task02; 2 | 3 | /* Исключение при работе со строками 4 | Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода: 5 | String s = null; 6 | String m = s.toLowerCase(); 7 | */ 8 | 9 | public class Solution 10 | { 11 | public static void main(String[] args) throws Exception 12 | { 13 | try { 14 | String s = null; 15 | String m = s.toLowerCase(); 16 | } 17 | catch (NullPointerException e) { 18 | System.out.println(e); 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson06/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson06.task03; 2 | 3 | /* Исключение при работе с массивами 4 | Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода: 5 | int[] m = new int[2]; 6 | m[8] = 5; 7 | */ 8 | 9 | public class Solution 10 | { 11 | public static void main(String[] args) throws Exception 12 | { 13 | try { 14 | int[] m = new int[2]; 15 | m[8]= 5; 16 | } 17 | 18 | catch (ArrayIndexOutOfBoundsException e) { 19 | System.out.println(e); 20 | } 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson06/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson06.task04; 2 | 3 | import java.util.ArrayList; 4 | 5 | /* Исключение при работе с коллекциями List 6 | Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода: 7 | ArrayList list = new ArrayList(); 8 | String s = list.get(18); 9 | */ 10 | 11 | public class Solution 12 | { 13 | public static void main(String[] args) throws Exception 14 | { 15 | try { 16 | ArrayList list = new ArrayList(); 17 | String s = list.get(18); 18 | } 19 | catch (IndexOutOfBoundsException e) { 20 | System.out.println(e); 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson11/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson11.home01; 2 | 3 | /* Деление на ноль 4 | Создай метод public static void divisionByZero, в котором подели любое число на ноль и выведи на экран результат деления. 5 | Оберни вызов метода divisionByZero в try..catch. Выведи стек-трейс исключения используя метод exception.printStackTrace() 6 | */ 7 | 8 | public class Solution { 9 | 10 | public static void main(String[] args) { 11 | 12 | try { 13 | divisionByZero(); 14 | } 15 | catch (Exception e) { 16 | e.printStackTrace(); 17 | } 18 | 19 | } 20 | 21 | public static void divisionByZero() { 22 | 23 | int division = 5 / 0; 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson11/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson11.home02; 2 | 3 | /* Обратный отсчёт от 10 до 0 4 | Написать в цикле обратный отсчёт от 10 до 0. Для задержки иcпользовать Thread.sleep(100); 5 | Обернуть вызов sleep в try..catch. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) { 11 | for (int i = 10; i >= 0; i--) 12 | { 13 | System.out.println(i); 14 | 15 | try { 16 | Thread.sleep(100); 17 | } 18 | catch (InterruptedException e) { 19 | 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level09/lesson11/home07/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level09.lesson11.home07; 2 | 3 | /* Расставь модификаторы static 4 | Расставь модификаторы static так, чтобы пример скомпилировался. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static int A = 5; 10 | public static int B = 2 * A; 11 | public int C = A * B; 12 | public static int D = A * B; 13 | 14 | void main(String[] args) 15 | { 16 | Solution room = new Solution(); 17 | room.A = 5; 18 | 19 | Solution.D = 5; 20 | } 21 | 22 | public int getA() 23 | { 24 | return A; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson04/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson04.task01; 2 | 3 | /* Задача №1 на преобразование целых типов 4 | Расставь где нужно оператор приведения типа: 5 | byte a = 1234; 6 | int b = a; 7 | byte c = a * a; 8 | int d = a / c; 9 | */ 10 | 11 | public class Solution 12 | { 13 | public static void main(String[] args) 14 | { 15 | byte a = (byte) 1234; 16 | int b = a; 17 | byte c = (byte) (a * a); 18 | int d = a / c; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson04/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson04.task02; 2 | 3 | /* Задача №2 на преобразование целых типов 4 | Расставь где нужно оператор приведения типа: 5 | int a = 15; 6 | int b = 4; 7 | float c = (a / (double)b); 8 | double d = a * 1e-3; 9 | */ 10 | 11 | public class Solution 12 | { 13 | public static void main(String[] args) 14 | { 15 | int a = 15; 16 | int b = 4; 17 | float c = (float) (a / (double)b); 18 | double d = a * 1e-3; 19 | 20 | System.out.println(c + d); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson04/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson04.task03; 2 | 3 | /* Задача №3 на преобразование целых типов 4 | Расставь где нужно оператор приведения типа: 5 | float f = 333.50; 6 | int i = f; 7 | byte b = i; 8 | */ 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) 13 | { 14 | float f = (float) 333.50; 15 | int i= (int) f; 16 | byte b = (byte) i; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson04/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson04.task04; 2 | 3 | /* Задача №4 на преобразование целых типов 4 | Расставь где нужно оператор приведения типа: 5 | short number = 9; 6 | char zero = '0'; 7 | char nine = zero + number; 8 | */ 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) 13 | { 14 | short number = 9; 15 | char zero = '0'; 16 | char nine = (char) (zero + number); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson04/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson04.task05; 2 | 3 | /* Задача №5 на преобразование целых типов 4 | Расставь где нужно оператор приведения типа: 5 | short number = 9; 6 | char zero = '0'; 7 | short nineCode = zero + number; 8 | */ 9 | 10 | public class Solution 11 | { 12 | public static void main(String[] args) 13 | { 14 | short number = 9; 15 | char zero = '0'; 16 | short nineCode = (short) (zero + number); 17 | } 18 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson11/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson11.home01; 2 | 3 | /* Правильный ответ: d=2.941 4 | Добавить одну операцию по преобразованию типа, чтобы получался ответ: d=2.941. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | int a = 50; 12 | int b = 17; 13 | double d = (double) a / b; 14 | System.out.println(d); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson11/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson11.home02; 2 | 3 | /* Правильный ответ: d=5.5 4 | Добавить одну операцию по преобразованию типа, чтобы получался ответ: d=5.5. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | int a = 5; 12 | int b = 4; 13 | int c = 3; 14 | int e = 2; 15 | double d = a + b/c/ (double) e; 16 | System.out.println(d); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level10/lesson11/home03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level10.lesson11.home03; 2 | 3 | /* Правильный ответ: d=1.0 4 | Добавить одну операцию по преобразованию типа, чтобы получался ответ: d=1.0. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | int a = 257; 12 | int b = 4; 13 | int c = 3; 14 | int e = 2; 15 | double d = (byte) a + b/c/e; 16 | 17 | System.out.println(d); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson06.task01; 2 | 3 | /* Лошадь и пегас 4 | Написать два класса: Horse (лошадь) и Pegas (пегас). 5 | Унаследовать пегаса от лошади. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | public class Horse 15 | { 16 | Object head; 17 | Object body; 18 | } 19 | 20 | public class Pegas extends Horse 21 | { 22 | Object wings; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson06/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson06.task02; 2 | 3 | /* Домашние животные 4 | Написать три класса: Pet (домашнее животное), Cat(кот) и Dog(собака). 5 | Унаследовать кота и собаку от животного. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | public class Pet 15 | { 16 | Object head; 17 | Object body; 18 | } 19 | 20 | public class Cat extends Pet 21 | { 22 | Object mrr; 23 | } 24 | 25 | public class Dog extends Pet 26 | { 27 | Object bark; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson06/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson06.task04; 2 | 3 | /* Все мы работники 4 | Написать четыре класса: Worker(сотрудник), Manager(управляющий), Chief(директор) и Secretary(секретарь). 5 | Унаследовать управляющего, директора и секретаря от сотрудника. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public class Manager extends Worker 11 | { 12 | Object manager; 13 | } 14 | 15 | public class Chief extends Worker 16 | { 17 | Object chief; 18 | } 19 | 20 | public class Worker 21 | { 22 | Object human; 23 | } 24 | 25 | public class Secretary extends Worker 26 | { 27 | Object Secretary; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson08/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson08.task01; 2 | 3 | /* Все скрыто 4 | Скрыть все внутренние переменные класса Cat. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | } 12 | 13 | public class Cat 14 | { 15 | private String name; 16 | private int age; 17 | private int weight; 18 | 19 | public Cat() 20 | { 21 | } 22 | 23 | public Cat(String name, int age, int weight) 24 | { 25 | this.name = name; 26 | this.age = age; 27 | this.weight = weight; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/bonus01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.bonus01; 2 | 3 | /* Нужно исправить программу, чтобы компилировалась и работала 4 | Исправь наследование в классах: (классы Cat, Dog, Pet, House, Airplane). 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | } 12 | 13 | public class Pet 14 | { 15 | 16 | } 17 | 18 | public class Cat extends Pet 19 | { 20 | 21 | } 22 | 23 | public class Dog extends Pet 24 | { 25 | 26 | } 27 | 28 | public class House 29 | { 30 | 31 | } 32 | 33 | public class Airplane 34 | { 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home01; 2 | 3 | /* Адам и Ева 4 | Написать два класса Adam(Адам) и Eve(Ева). 5 | Унаследовать Еву от Адама. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | //Адам 15 | public class Adam 16 | { 17 | Object head; 18 | Object body; 19 | } 20 | 21 | //Ева 22 | public class Eve extends Adam 23 | { 24 | Object female; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home02; 2 | 3 | /* AppleIPhone и SamsungGalaxyS2 4 | Написать два класса AppleIPhone и SamsungGalaxyS2. 5 | Унаследовать SamsungGalaxyS2 от AppleIPhone. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | public class AppleIPhone 15 | { 16 | Object hardwareCase; 17 | Object screen; 18 | } 19 | 20 | public class SamsungGalaxyS2 extends AppleIPhone 21 | { 22 | Object copypaste; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home04; 2 | 3 | /* Религии 4 | Написать три класса: Judaism(Иудаизм), Christianity(Христианство), Islam(Мусульманство) 5 | Унаследовать христианство от иудаизма и мусульманство от христианства. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | public class Judaism 15 | { 16 | 17 | } 18 | 19 | public class Christianity extends Judaism 20 | { 21 | 22 | } 23 | 24 | public class Islam extends Christianity 25 | { 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home05; 2 | 3 | /* От школьника к рабству 4 | Написать четыре класса: Schoolboy(школьник), Student(студент), Worker(Сотрудник), Slave (Раб) 5 | Унаследовать студента от школьника, сотрудника от студента, раба от сотрудника. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | } 13 | 14 | public class Schoolboy 15 | { 16 | 17 | } 18 | 19 | public class Student extends Schoolboy 20 | { 21 | 22 | } 23 | 24 | public class Worker extends Student 25 | { 26 | 27 | } 28 | 29 | public class Slave extends Worker 30 | { 31 | 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home06/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home06; 2 | 3 | /* Первая правильная «цепочка наследования» 4 | Расставь правильно «цепочку наследования» в классах: Pet (домашнее животное), Cat (кот), Dog(собака). 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | } 12 | 13 | public class Pet 14 | { 15 | 16 | } 17 | 18 | public class Cat extends Pet 19 | { 20 | 21 | } 22 | 23 | public class Dog extends Pet 24 | { 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home08/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home08; 2 | 3 | /* Третья правильная «цепочка наследования» 4 | Расставь правильно «цепочку наследования» в классах: Pet (домашнее животное), Cat (кот), Dog(собака), Car (машина). 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | } 12 | 13 | public class Pet 14 | { 15 | 16 | } 17 | 18 | public class Cat extends Pet 19 | { 20 | 21 | } 22 | 23 | public class Car 24 | { 25 | 26 | } 27 | 28 | public class Dog extends Pet 29 | { 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/com/javarush/test/level11/lesson11/home09/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level11.lesson11.home09; 2 | 3 | /* Четвертая правильная «цепочка наследования» 4 | Расставь правильно «цепочку наследования» в классах: House (дом), Cat (кот), Dog(собака), Car (машина). 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | } 12 | 13 | public class House 14 | { 15 | 16 | } 17 | 18 | public class Cat 19 | { 20 | 21 | } 22 | 23 | public class Car 24 | { 25 | 26 | } 27 | 28 | public class Dog 29 | { 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson04/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson04.task01; 2 | 3 | /* print(int) и print(String) 4 | Написать два метода: print(int) и print(String). 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | public void print(int i) {} 15 | public void print(String s) {} 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson04/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson04.task02; 2 | 3 | /* print(int) и print(Integer) 4 | Написать два метода: print(int) и print(Integer). 5 | Написать такой код в методе main, чтобы вызвались они оба. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | int a = 1; 13 | Integer b = 2; 14 | 15 | print(a); 16 | print(b); 17 | 18 | 19 | } 20 | 21 | public static void print(int i){ 22 | System.out.println(i); 23 | } 24 | public static void print (Integer i) { 25 | System.out.println(i); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson04/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson04.task03; 2 | 3 | /* Пять методов print с разными параметрами 4 | Написать пять методов print с разными параметрами. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | public static void print (String s, int i) {} 15 | public static void print (int i) {} 16 | public static void print (String s) {} 17 | public static void print (double d) {} 18 | public static void print (String s, int i, double d) {} 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson06.task01; 2 | 3 | /* Абстрактный класс Pet 4 | Сделать класс Pet абстрактным. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | public abstract class Pet 15 | { 16 | public String getName() 17 | { 18 | return "Я - котенок"; 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson06/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson06.task02; 2 | 3 | /* Исправь код. Первая задача 4 | Исправь код, чтобы программа компилировалась. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | 15 | public abstract class Pet 16 | { 17 | public String getName() 18 | { 19 | return "Я - котенок"; 20 | } 21 | 22 | public abstract Pet getChild(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson06/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson06.task03; 2 | 3 | /* Исправь код. Вторая задача 4 | Исправь код, чтобы программа компилировалась. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | public abstract class Pet 15 | { 16 | public String getName() 17 | { 18 | return "Я - котенок"; 19 | } 20 | 21 | public abstract Pet getChild(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson06/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson06.task04; 2 | 3 | /* Класс Cow от Animal 4 | Унаследуй класс Cow от Animal. 5 | Реализуй все недостающие методы в классе Cow. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | 13 | } 14 | 15 | public static abstract class Animal 16 | { 17 | public abstract String getName(); 18 | } 19 | 20 | public static class Cow extends Animal 21 | { 22 | Animal cow = new Cow(); 23 | 24 | @Override 25 | public String getName() { 26 | return null; 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson09/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson09.task01; 2 | 3 | /* Интерфейс Fly 4 | Напиши свой public интерфейс Fly(летать). Добавь в него два метода. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) 10 | { 11 | 12 | } 13 | 14 | public interface Fly { 15 | 16 | void takeOff(String ICAOCode, int x, int y); 17 | void landing(String ICAOCode, int x, int y); 18 | } 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson09/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson09.task02; 2 | 3 | /* Интерфейсы Fly, Run, Swim 4 | Напиши public интерфейсы Fly(летать), Run(бежать/ездить), Swim(плавать). 5 | Добавить в каждый интерфейс по одному методу. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | 13 | } 14 | 15 | public interface Fly { 16 | public void start(String s); 17 | } 18 | 19 | public interface Run { 20 | public void start(String s); 21 | } 22 | 23 | public interface Swim { 24 | public void start(String s); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level12/lesson12/home10/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level12.lesson12.home10; 2 | 3 | /* Метод, который выводит на экран число 10 4 | Добавь еще один метод, чтобы программа выводила на экран число 10. 5 | Подсказка: используй перегрузку методов. 6 | */ 7 | 8 | public class Solution 9 | { 10 | public static void main(String[] args) 11 | { 12 | Integer i = 5; 13 | int x = transformValue(i); 14 | 15 | System.out.println(x); 16 | } 17 | 18 | public static int transformValue(int i) 19 | { 20 | 21 | return i*i; 22 | } 23 | 24 | public static int transformValue (Integer i) { 25 | return i+i; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus02/Person.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus02; 2 | 3 | public class Person implements RepkaItem 4 | { 5 | private String name; 6 | private String namePadezh; 7 | 8 | public Person(String name, String namePadezh) 9 | { 10 | this.name = name; 11 | this.namePadezh = namePadezh; 12 | } 13 | 14 | @Override 15 | public String getNamePadezh() { 16 | return this.namePadezh; 17 | } 18 | 19 | public void pull(Person person) { 20 | System.out.println(this.name + " за " + person.getNamePadezh()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus02/RepkaItem.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus02; 2 | 3 | public interface RepkaItem 4 | { 5 | public String getNamePadezh(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus02/RepkaStory.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus02; 2 | 3 | import java.util.List; 4 | 5 | public class RepkaStory 6 | { 7 | static void tell(List items) { 8 | 9 | Person first; 10 | Person second; 11 | for (int i = items.size() - 1; i > 0; i--) { 12 | first = items.get(i); 13 | second = items.get(i - 1); 14 | first.pull(second); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus03/Attackable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus03; 2 | 3 | public interface Attackable 4 | { 5 | BodyPart attack(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus03/BodyPart.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus03; 2 | 3 | public final class BodyPart 4 | { 5 | final static BodyPart LEG = new BodyPart("нога"); 6 | final static BodyPart HEAD = new BodyPart("голова"); 7 | final static BodyPart ARM = new BodyPart("рука"); 8 | final static BodyPart BODY = new BodyPart("корпус"); 9 | 10 | private String bodyPart; 11 | 12 | private BodyPart(String bodyPart) 13 | { 14 | this.bodyPart = bodyPart; 15 | } 16 | 17 | @Override 18 | public String toString() 19 | { 20 | return this.bodyPart; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus03/Defensable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus03; 2 | 3 | public interface Defensable 4 | { 5 | BodyPart defense(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/bonus03/Robot.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.bonus03; 2 | 3 | public class Robot extends AbstractRobot implements Attackable, Defensable 4 | { 5 | 6 | private String name; 7 | 8 | public Robot(String name) 9 | { 10 | this.name = name; 11 | } 12 | 13 | public String getName() 14 | { 15 | return name; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.home01; 2 | 3 | /* Некорректные строки 4 | Удали все некорректные строки в интерфейсе Button. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | System.out.println(SimpleObject.NAME); 12 | System.out.println(Button.NAME); 13 | } 14 | 15 | interface SimpleObject 16 | { 17 | String NAME = "SimpleObject"; 18 | void onPress(); 19 | } 20 | 21 | interface Button extends SimpleObject 22 | { 23 | 24 | final String NAME = "Submit"; 25 | public void onPress(); 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/home02/Weather.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.home02; 2 | 3 | public interface Weather 4 | { 5 | String getWeatherType(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/home02/WeatherType.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.home02; 2 | 3 | public interface WeatherType 4 | { 5 | String CLOUDY = "Cloudy"; 6 | String FOGGY = "Foggy"; 7 | String FROZEN = "Frozen"; 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/home08/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.home08; 2 | 3 | /* Интерфейс Updatable в классе Screen 4 | Реализовать интерфейс Updatable в классе Screen. 5 | */ 6 | 7 | public class Solution 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | } 12 | 13 | interface Selectable 14 | { 15 | void onSelect(); 16 | } 17 | 18 | interface Updatable extends Selectable 19 | { 20 | void refresh(); 21 | } 22 | 23 | class Screen implements Updatable 24 | { 25 | 26 | @Override 27 | public void refresh() { 28 | 29 | } 30 | 31 | @Override 32 | public void onSelect() { 33 | 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/com/javarush/test/level13/lesson11/home09/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level13.lesson11.home09; 2 | 3 | import java.awt.*; 4 | 5 | /* Один метод в классе 6 | 1. Унаследовать Fox от интерфейса Animal. 7 | 2. Поменяй код так, чтобы в классе Fox был только один метод - getName. 8 | 3. Методы удалять нельзя! 9 | */ 10 | 11 | public class Solution 12 | { 13 | public static void main(String[] args) throws Exception 14 | { 15 | } 16 | 17 | public interface Animal 18 | { 19 | Color getColor(); 20 | 21 | Integer getAge(); 22 | } 23 | 24 | public static abstract class Fox implements Animal 25 | { 26 | public String getName() 27 | { 28 | return "Fox"; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/BelarusianHen.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public class BelarusianHen extends Hen { 4 | @Override 5 | public int getCountOfEggsPerMonth() { 6 | return 330; 7 | } 8 | 9 | @Override 10 | public String getDescription() { 11 | return super.getDescription() + " Моя страна - " + Country.BELARUS + ". Я несу " + this.getCountOfEggsPerMonth() + "яиц в месяц"; 12 | } 13 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/Country.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public interface Country 4 | { 5 | String UKRAINE = "Ukraine"; 6 | String RUSSIA = "Russia"; 7 | String MOLDOVA = "Moldova"; 8 | String BELARUS = "Belarus"; 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/Hen.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public abstract class Hen { 4 | 5 | public abstract int getCountOfEggsPerMonth(); 6 | 7 | public String getDescription() { 8 | return "Я курица."; 9 | } 10 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/MoldovanHen.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public class MoldovanHen extends Hen { 4 | @Override 5 | public int getCountOfEggsPerMonth() { 6 | return 330; 7 | } 8 | 9 | @Override 10 | public String getDescription() { 11 | return super.getDescription() + " Моя страна - " + Country.MOLDOVA + ". Я несу " + this.getCountOfEggsPerMonth() + "яиц в месяц"; 12 | } 13 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/RussianHen.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public class RussianHen extends Hen { 4 | 5 | @Override 6 | public int getCountOfEggsPerMonth() { 7 | return 350; 8 | } 9 | 10 | @Override 11 | public String getDescription() { 12 | return super.getDescription() + " Моя страна - " + Country.RUSSIA + ". Я несу " + this.getCountOfEggsPerMonth() + "яиц в месяц"; 13 | } 14 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson06/home01/UkrainianHen.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson06.home01; 2 | 3 | public class UkrainianHen extends Hen { 4 | @Override 5 | public int getCountOfEggsPerMonth() { 6 | return 340; 7 | } 8 | 9 | @Override 10 | public String getDescription() { 11 | return super.getDescription() + " Моя страна - " + Country.UKRAINE + ". Я несу " + this.getCountOfEggsPerMonth() + "яиц в месяц"; 12 | } 13 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/bonus03/Singleton.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.bonus03; 2 | 3 | 4 | public class Singleton { 5 | 6 | private static Singleton instance; 7 | 8 | public static Singleton getInstance() { 9 | if (instance == null) { 10 | instance = new Singleton(); 11 | } 12 | 13 | return instance; 14 | } 15 | 16 | private Singleton() {} 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home01/Bridge.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home01; 2 | 3 | public interface Bridge { 4 | 5 | public int getCarsCount(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home01/SuspensionBridge.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home01; 2 | 3 | public class SuspensionBridge implements Bridge { 4 | @Override 5 | public int getCarsCount() { 6 | return 90; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home01/WaterBridge.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home01; 2 | 3 | public class WaterBridge implements Bridge { 4 | @Override 5 | public int getCarsCount() { 6 | return 100; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home02/BubblyWine.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home02; 2 | 3 | public class BubblyWine extends Wine { 4 | 5 | @Override 6 | public String getHolidayName() { 7 | return "Новый год"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home02/Drink.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home02; 2 | 3 | public abstract class Drink { 4 | 5 | void taste() { 6 | System.out.println("Вкусно"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home02/Wine.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home02; 2 | 3 | public class Wine extends Drink{ 4 | 5 | public String getHolidayName() { 6 | return "День рождения"; 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home05/CompItem.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home05; 2 | 3 | public interface CompItem { 4 | 5 | String getName(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home05/Computer.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home05; 2 | 3 | public class Computer { 4 | 5 | private Keyboard keyboard; 6 | private Mouse mouse; 7 | private Monitor monitor; 8 | 9 | public Computer() { 10 | this.keyboard = new Keyboard(); 11 | this.mouse = new Mouse(); 12 | this.monitor = new Monitor(); 13 | } 14 | 15 | 16 | public Keyboard getKeyboard() { 17 | return keyboard; 18 | } 19 | 20 | public Mouse getMouse() { 21 | return mouse; 22 | } 23 | 24 | public Monitor getMonitor() { 25 | return monitor; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home05/Keyboard.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home05; 2 | 3 | public class Keyboard implements CompItem { 4 | 5 | @Override 6 | public String getName() { 7 | return this.getClass().getSimpleName(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home05/Monitor.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home05; 2 | 3 | public class Monitor implements CompItem { 4 | 5 | @Override 6 | public String getName() { 7 | return this.getClass().getSimpleName(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home05/Mouse.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home05; 2 | 3 | public class Mouse implements CompItem{ 4 | 5 | @Override 6 | public String getName() { 7 | return this.getClass().getSimpleName(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home09/Hrivna.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home09; 2 | 3 | public class Hrivna extends Money 4 | { 5 | public Hrivna( double amount ) 6 | { 7 | super( amount ); 8 | } 9 | 10 | @Override 11 | public String getCurrencyName() 12 | { 13 | return "HRN"; 14 | } 15 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home09/Money.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home09; 2 | 3 | public abstract class Money 4 | { 5 | private double amount; 6 | 7 | 8 | public Money(double amount) 9 | { 10 | this.amount = amount; 11 | } 12 | 13 | public double getAmount() { 14 | return amount; 15 | } 16 | 17 | public abstract String getCurrencyName(); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level14/lesson08/home09/USD.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level14.lesson08.home09; 2 | 3 | public class USD extends Money 4 | { 5 | public USD( double amount ) 6 | { 7 | super( amount ); 8 | } 9 | 10 | @Override 11 | public String getCurrencyName() 12 | { 13 | return "USD"; 14 | } 15 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson04/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson04.task03; 2 | 3 | /* ООП - Перегрузка - убираем лишнее 4 | 1. Подумайте, какая из реализаций метода print будет вызвана. 5 | 2. Удалите все лишние реализации метода print. 6 | */ 7 | 8 | public class Solution { 9 | public static void main(String[] args) { 10 | print(1); 11 | } 12 | 13 | 14 | public static void print(long l) { 15 | System.out.println("Я буду Java прогером!"); 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson06/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson06.task03; 2 | 3 | /* Максимально простой код 3 4 | Упрости код: 5 | - убери всё то, что будет генерироваться автоматически при компиляции 6 | - убери все наследования классов, которые и так будут добавлены автоматически при компиляции 7 | - убери все конструкторы, которые создаются и добавляются автоматически. 8 | */ 9 | 10 | public class Solution { 11 | public static void main(String[] args) { 12 | } 13 | 14 | public interface Runnable { 15 | 16 | } 17 | 18 | public class Machine implements Runnable { 19 | 20 | } 21 | 22 | public class Car extends Machine { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson09/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson09.task01; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | /* Статики 1 7 | В статическом блоке инициализировать labels 5 различными парами. 8 | */ 9 | 10 | public class Solution { 11 | public static Map labels = new HashMap(); 12 | 13 | static { 14 | labels.put(1.1, "one"); 15 | labels.put(2.1, "two"); 16 | labels.put(3.1, "three"); 17 | labels.put(4.5, "four"); 18 | labels.put(5.6, "five"); 19 | } 20 | 21 | 22 | public static void main(String[] args) { 23 | System.out.println(labels); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson09/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson09.task05; 2 | 3 | /* Статики 4 4 | Внутри статического блока: 5 | 1. Создайте класс Cat 6 | 2. Внутри Cat создайте поле класса String name = "Пушок" 7 | 3. Создайте объект класса Cat - myCat 8 | 4. Присвойте статическому объекту Object cat объект, созданный в п.3 9 | 5. Выведите в консоль myCat.name 10 | */ 11 | 12 | public class Solution { 13 | 14 | public static Object cat; 15 | 16 | static { 17 | class Cat{ 18 | String name = "Пушок"; 19 | } 20 | 21 | Cat myCat = new Cat(); 22 | cat = myCat; 23 | System.out.println(myCat.name); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus01/Flyable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus01; 2 | 3 | public interface Flyable { 4 | void fly(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus01/Helicopter.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus01; 2 | 3 | public class Helicopter implements Flyable { 4 | 5 | @Override 6 | public void fly() { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus01/Plane.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus01; 2 | 3 | public class Plane implements Flyable { 4 | 5 | public Plane(int pax) { 6 | } 7 | 8 | @Override 9 | public void fly() { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus02/DrinkMaker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus02; 2 | 3 | public abstract class DrinkMaker { 4 | 5 | public abstract void getRightCup(); 6 | public abstract void putIngredient(); 7 | public abstract void pour(); 8 | 9 | public void makeDrink(){ 10 | getRightCup(); 11 | putIngredient(); 12 | pour(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus02/LatteMaker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus02; 2 | 3 | 4 | public class LatteMaker extends DrinkMaker{ 5 | 6 | @Override 7 | public void getRightCup() { 8 | System.out.println("Берем чашку для латте"); 9 | } 10 | 11 | @Override 12 | public void putIngredient() { 13 | System.out.println("Делаем кофе"); 14 | } 15 | 16 | @Override 17 | public void pour() { 18 | System.out.println("Заливаем молоком с пенкой"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/bonus02/TeaMaker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.bonus02; 2 | 3 | 4 | public class TeaMaker extends DrinkMaker { 5 | 6 | @Override 7 | public void getRightCup() { 8 | System.out.println("Берем чашку для чая"); 9 | } 10 | 11 | @Override 12 | public void putIngredient() { 13 | System.out.println("Насыпаем чай"); 14 | } 15 | 16 | @Override 17 | public void pour() { 18 | System.out.println("Заливаем водой"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/home04/Earth.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.home04; 2 | 3 | public class Earth implements Planet { 4 | 5 | private static Earth instance; 6 | 7 | private Earth() {} 8 | 9 | public static Earth getInstance() { 10 | if(instance == null) { 11 | instance = new Earth(); 12 | } 13 | return instance; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/home04/Moon.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.home04; 2 | 3 | public class Moon implements Planet { 4 | 5 | private static Moon instance; 6 | 7 | private Moon() {} 8 | 9 | public static Moon getInstance() { 10 | if(instance == null) { 11 | instance = new Moon(); 12 | } 13 | return instance; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/home04/Planet.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.home04; 2 | 3 | public interface Planet { 4 | static String SUN = "sun"; 5 | static String MOON = "moon"; 6 | static String EARTH = "earth"; 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/home04/Sun.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.home04; 2 | 3 | public class Sun implements Planet { 4 | 5 | private static Sun instance; 6 | 7 | private Sun() {} 8 | 9 | public static Sun getInstance() { 10 | if(instance == null) { 11 | instance = new Sun(); 12 | } 13 | return instance; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level15/lesson12/home07/Constants.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level15.lesson12.home07; 2 | 3 | public class Constants { 4 | public static String FILE_NAME = "d:\\1.txt"; 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson03/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson03.task01; 2 | 3 | /* My first thread 4 | Создать public static class TestThread - нить с помощью интерфейса Runnable. 5 | TestThread должен выводить в консоль "My first thread". 6 | */ 7 | public class Solution { 8 | public static void main(String[] args) { 9 | TestThread task = new TestThread(); 10 | new Thread(task).start(); 11 | } 12 | 13 | public static class TestThread implements Runnable { 14 | 15 | @Override 16 | public void run() { 17 | System.out.println("My first thread"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson10/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson10.task03; 2 | 3 | /* Снова interrupt 4 | Создай нить TestThread. 5 | В методе main создай экземпляр нити, запусти, а потом прерви ее используя метод interrupt(). 6 | */ 7 | 8 | public class Solution { 9 | public static void main(String[] args) throws InterruptedException { 10 | Thread TestThread = new Thread(); 11 | TestThread.start(); 12 | TestThread.interrupt(); 13 | } 14 | 15 | //Add your code below - добавь код ниже 16 | public static class TestThread extends Thread { 17 | @Override 18 | public void run() { 19 | 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/ImageReaderFactory.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01; 2 | 3 | import com.javarush.test.level16.lesson13.bonus01.common.*; 4 | 5 | public class ImageReaderFactory { 6 | 7 | 8 | public static ImageReader getReader(ImageTypes types) { 9 | 10 | if (types == ImageTypes.JPG) { 11 | return new JpgReader(); 12 | } else if (types == ImageTypes.PNG) { 13 | return new PngReader(); 14 | } else if (types == ImageTypes.BMP) { 15 | return new BmpReader(); 16 | } 17 | else { 18 | throw new IllegalArgumentException("Неизвестный тип картинки"); 19 | } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/common/BmpReader.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01.common; 2 | 3 | public class BmpReader implements ImageReader{ 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/common/ImageReader.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01.common; 2 | 3 | public interface ImageReader { 4 | 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/common/ImageTypes.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01.common; 2 | 3 | public enum ImageTypes { 4 | BMP, 5 | JPG, 6 | PNG; 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/common/JpgReader.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01.common; 2 | 3 | public class JpgReader implements ImageReader { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus01/common/PngReader.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus01.common; 2 | 3 | public class PngReader implements ImageReader { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level16/lesson13/bonus02/Message.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level16.lesson13.bonus02; 2 | 3 | public interface Message { 4 | void showWarning(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson04/task05/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson04.task05; 2 | 3 | /* МВФ 4 | Singleton паттерн - синхронизация в методе 5 | IMF - это Международный Валютный Фонд 6 | Внутри метода getFund создайте синхронизированный блок 7 | Внутри синхронизированного блока инициализируйте переменную imf так, чтобы метод getFund всегда возвращал один и тот же объект 8 | */ 9 | 10 | public class Solution { 11 | public static class IMF { 12 | 13 | private static IMF imf; 14 | 15 | public static IMF getFund() { 16 | synchronized (IMF.class){ 17 | imf = new IMF(); 18 | } 19 | return imf; 20 | } 21 | 22 | private IMF() { 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/bonus01/Sex.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.bonus01; 2 | 3 | public enum Sex { 4 | MALE, 5 | FEMALE 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/bonus02/Sex.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.bonus02; 2 | 3 | public enum Sex { 4 | MALE, 5 | FEMALE 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/bonus03/Dishes.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.bonus03; 2 | 3 | public class Dishes { 4 | private byte tableNumber; 5 | 6 | public Dishes(byte tableNumber) { 7 | this.tableNumber = tableNumber; 8 | } 9 | 10 | public byte getTableNumber() { 11 | return tableNumber; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/bonus03/Order.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.bonus03; 2 | 3 | public class Order { 4 | private long time; 5 | private byte tableNumber; 6 | 7 | public Order(byte tableNumber) { 8 | time = (long) (Math.random() * 200); 9 | this.tableNumber = tableNumber; 10 | } 11 | 12 | public long getTime() { 13 | return time; 14 | } 15 | 16 | public byte getTableNumber() { 17 | return tableNumber; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/bonus03/Table.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.bonus03; 2 | 3 | public class Table { 4 | private static byte tableNumber; 5 | private byte number = ++tableNumber; 6 | 7 | public Order getOrder () { 8 | return new Order(number); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/home03/Drug.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.home03; 2 | 3 | public class Drug { 4 | private String name; 5 | private String description; 6 | 7 | public String getName() { 8 | return name; 9 | } 10 | 11 | public void setName(String name) { 12 | this.name = name; 13 | } 14 | 15 | public String getDescription() { 16 | return description; 17 | } 18 | 19 | public void setDescription(String description) { 20 | this.description = description; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/home07/Bean.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.home07; 2 | 3 | public interface Bean { //это интерфейс-маркер 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/home08/NotEnoughMoneyException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.home08; 2 | 3 | public class NotEnoughMoneyException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level17/lesson10/home09/CorruptedDataException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level17.lesson10.home09; 2 | 3 | import java.io.IOException; 4 | 5 | public class CorruptedDataException extends IOException { 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level18/lesson08/task02/AmigoOutputStream.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level18.lesson08.task02; 2 | 3 | import java.io.IOException; 4 | 5 | public interface AmigoOutputStream { 6 | public void flush() throws IOException; 7 | 8 | void write(int b) throws IOException; 9 | 10 | void write(byte[] b) throws IOException; 11 | 12 | void write(byte[] b, int off, int len) throws IOException; 13 | 14 | void close() throws IOException; 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level18/lesson08/task04/UnsupportedFileNameException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level18.lesson08.task04; 2 | 3 | public class UnsupportedFileNameException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level19/lesson03/task02/AmigoStringWriter.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level19.lesson03.task02; 2 | 3 | import java.io.IOException; 4 | 5 | public interface AmigoStringWriter { 6 | public void flush() throws IOException; 7 | 8 | void writeString(String s) throws IOException; 9 | 10 | void close() throws IOException; 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level19/lesson03/task04/Person.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level19.lesson03.task04; 2 | 3 | import java.util.Date; 4 | 5 | public class Person { 6 | private String firstName; 7 | private String middleName; 8 | private String lastName; 9 | private Date birthDate; 10 | 11 | public Person(String firstName, String middleName, String lastName, Date birthDate) { 12 | this.firstName = firstName; 13 | this.middleName = middleName; 14 | this.lastName = lastName; 15 | this.birthDate = birthDate; 16 | } 17 | 18 | @Override 19 | public String toString() { 20 | return String.format("%s %s %s %s", lastName, firstName, middleName, birthDate.toString()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level19/lesson03/task04/PersonScanner.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level19.lesson03.task04; 2 | 3 | import java.io.IOException; 4 | 5 | public interface PersonScanner { 6 | Person read() throws IOException; 7 | 8 | void close() throws IOException; 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level19/lesson10/home03/Person.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level19.lesson10.home03; 2 | 3 | import java.util.Date; 4 | 5 | public class Person { 6 | private String name; 7 | private Date birthday; 8 | 9 | public Person(String name, Date birthday) { 10 | this.name = name; 11 | this.birthday = birthday; 12 | } 13 | 14 | public String getName() { 15 | return name; 16 | } 17 | 18 | public Date getBirthday() { 19 | return birthday; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson02/task01/Asset.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson02.task01; 2 | 3 | public class Asset { 4 | public Asset(String name) { 5 | this.name = name; 6 | } 7 | 8 | private String name; 9 | private double price; 10 | 11 | public String getName() { 12 | return name; 13 | } 14 | 15 | public double getPrice() { 16 | return price; 17 | } 18 | 19 | public void setPrice(double price) { 20 | this.price = price; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson04/task01/Asset.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson04.task01; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Asset implements Serializable { 6 | public Asset(String name) { 7 | this.name = name; 8 | } 9 | 10 | private String name; 11 | private double price; 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | 17 | public double getPrice() { 18 | return price; 19 | } 20 | 21 | public void setPrice(double price) { 22 | this.price = price; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson04/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson04.task02; 2 | 3 | import java.io.Serializable; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | /* Как сериализовать JavaRush? 8 | Сделайте так, чтобы сериализация класса JavaRush была возможной 9 | */ 10 | public class Solution { 11 | public static class JavaRush implements Serializable { 12 | public List users = new ArrayList<>(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson04/task04/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson04.task04; 2 | 3 | import java.io.Serializable; 4 | 5 | /* Как сериализовать static? 6 | Сделайте так, чтобы сериализация класса ClassWithStatic была возможной 7 | */ 8 | public class Solution { 9 | public static class ClassWithStatic implements Serializable { 10 | public static String staticString = "it's test static string"; 11 | public int i; 12 | public int j; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson10/home06/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson10.home06; 2 | 3 | import java.io.*; 4 | 5 | /* Запрет сериализации 6 | Запретите сериализацию класса SubSolution используя NotSerializableException. 7 | Сигнатуры классов менять нельзя 8 | */ 9 | public class Solution implements Serializable { 10 | public static class SubSolution extends Solution { 11 | 12 | private void writeObject(ObjectOutputStream out) throws IOException { 13 | throw new NotSerializableException(); 14 | } 15 | 16 | private void readObject(ObjectInputStream in) throws IOException { 17 | throw new NotSerializableException(); 18 | } 19 | 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level20/lesson10/home09/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level20.lesson10.home09; 2 | 3 | import java.io.Serializable; 4 | import java.util.LinkedList; 5 | import java.util.List; 6 | 7 | /* Знакомство с графами 8 | Дан ориентированный плоский граф Solution, содержащий циклы и петли. 9 | Пример, http://edu.nstu.ru/courses/saod/images/graph1.gif 10 | Сериализовать Solution. 11 | Все данные должны сохранить порядок следования. 12 | */ 13 | public class Solution implements Serializable{ 14 | int node; 15 | List edges = new LinkedList<>(); 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level21/lesson02/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level21.lesson02.task03; 2 | 3 | /* Все гениальное - просто! 4 | Упростить. Переменные не переименовывать, комментарии не оставлять. 5 | */ 6 | public class Solution { 7 | public static boolean calculate(boolean a, boolean b, boolean c, boolean d) { 8 | return c; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level21/lesson16/big01/Hippodrome.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/com/javarush/test/level21/lesson16/big01/Hippodrome.java -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson05/home01/Task.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level22.lesson05.home01; 2 | 3 | public class Task implements Runnable { 4 | private String initialString; 5 | private Solution solution; 6 | 7 | public Task(Solution solution, String initialString) { 8 | this.solution = solution; 9 | this.initialString = initialString; 10 | } 11 | 12 | @Override 13 | public void run() { 14 | String name = Thread.currentThread().getName(); 15 | String str = this.initialString; 16 | do { 17 | System.out.println(name + str); 18 | } while ((str = solution.getPartOfString(str, name)) != null || !str.isEmpty()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson05/home01/TooShortStringFirstThreadException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level22.lesson05.home01; 2 | 3 | public class TooShortStringFirstThreadException extends RuntimeException { 4 | public TooShortStringFirstThreadException(StringIndexOutOfBoundsException e) { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson05/home01/TooShortStringSecondThreadException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level22.lesson05.home01; 2 | 3 | public class TooShortStringSecondThreadException extends RuntimeException { 4 | public TooShortStringSecondThreadException(StringIndexOutOfBoundsException e) { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson07/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level22.lesson07.task01; 2 | 3 | /* Форматирование строки 4 | Исправить метод getFormattedString так, чтобы он возвращал строку с параметрами для форматирования. 5 | Для перевода каретки не используйте \n. 6 | Должен быть вывод: 7 | 20 / 7 = 2,86 8 | Exp = 3,33e+00 9 | */ 10 | public class Solution { 11 | public static void main(String[] args) { 12 | System.out.println(String.format(getFormattedString(), 20.0 / 7.0, 10.0 / 3.0)); 13 | //должен быть вывод 14 | //20 / 7 = 2,86 15 | //Exp = 3,33e+00 16 | } 17 | 18 | public static String getFormattedString() { 19 | return "20 / 7 = %.2f %nExp = %.2e"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson07/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level22.lesson07.task02; 2 | 3 | /* МНЕ нравится курс JavaRush 4 | Исправить метод getFormattedString так, чтобы он возвращал строку с параметрами для форматирования. 5 | Параметры должны меняться местами. 6 | Должен быть вывод: 7 | МНЕ нравится курс JavaRush 8 | */ 9 | public class Solution { 10 | public static void main(String[] args) { 11 | System.out.println(String.format(getFormattedString(), "JavaRush", "курс", "мне", "нравится")); 12 | //должен быть вывод 13 | //"МНЕ нравится курс JavaRush" 14 | } 15 | public static String getFormattedString() { 16 | 17 | String s = "%3$S %4$s %2$s %1$s"; 18 | 19 | 20 | return s; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level22/lesson18/big01/FigureFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/com/javarush/test/level22/lesson18/big01/FigureFactory.java -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson02/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson02.task01; 2 | 3 | /* Запретите наследование 4 | Запретите наследование от класса Listener. 5 | */ 6 | public class Solution { 7 | 8 | final public static class Listener { 9 | public void onMouseDown(int x, int y) { 10 | //do something on mouse down event 11 | } 12 | 13 | public void onMouseUp(int x, int y) { 14 | //do something on mouse up event 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson02/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson02.task02; 2 | 3 | /* Запретите переопределение 4 | Запретите переопределение метода onMouseDown. 5 | */ 6 | public class Solution { 7 | 8 | public static class Listener { 9 | final public void onMouseDown(int x, int y) { 10 | //do something on mouse down event 11 | } 12 | 13 | public void onMouseUp(int x, int y) { 14 | //do something on mouse up event 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson02/task03/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson02.task03; 2 | 3 | /* Запретите создание экземпляров класса 4 | Запретите создание экземпляров класса Listener. 5 | */ 6 | public class Solution { 7 | 8 | public static abstract class Listener { 9 | public void onMouseDown(int x, int y) { 10 | //do something on mouse down event 11 | } 12 | 13 | public void onMouseUp(int x, int y) { 14 | //do something on mouse up event 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson04/home01/DbMock.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson04.home01; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | public class DbMock { 8 | private static final List FAKE_TASKS = new ArrayList<>(); 9 | private static final List FAKE_NAMES = new ArrayList<>(); 10 | 11 | public static List getFakeTasks(Map criteria) { 12 | return ViewMock.getFakeTasksCriteria().equals(criteria) ? FAKE_TASKS : null; 13 | } 14 | 15 | public static List getFakeNames(Map criteria) { 16 | return ViewMock.getFakeNamesCriteria().equals(criteria) ? FAKE_NAMES : null; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson04/home01/ViewMock.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson04.home01; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class ViewMock { 7 | private static final Map FAKE_TASKS_CRITERIA = new HashMap(); 8 | private static final Map FAKE_NAMES_CRITERIA = new HashMap(); 9 | 10 | public static Map getFakeTasksCriteria() { 11 | return FAKE_TASKS_CRITERIA; 12 | } 13 | 14 | public static Map getFakeNamesCriteria() { 15 | return FAKE_NAMES_CRITERIA; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson06.task01; 2 | 3 | /* Как выбрать нужное? 4 | В методе main присвойте объекту Object obj экземпляр класса TEST 5 | Константу TEST и класс TEST менять нельзя. 6 | */ 7 | public class Solution { 8 | public static final String TEST = "test"; 9 | 10 | public static class TEST { 11 | @Override 12 | public String toString() { 13 | return "test class"; 14 | } 15 | } 16 | 17 | static Object obj; 18 | 19 | public static void main(String[] args) { 20 | obj = new TEST(); 21 | System.out.println(obj); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson08/home01/vo/Location.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson08.home01.vo; 2 | 3 | /** 4 | * Created by User on 09.07.2015. 5 | */ 6 | public class Location extends NamedItem { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson08/home01/vo/Server.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson08.home01.vo; 2 | 3 | /** 4 | * Created by User on 09.07.2015. 5 | */ 6 | public class Server extends NamedItem { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson08/home01/vo/Subject.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson08.home01.vo; 2 | 3 | /** 4 | * Created by User on 09.07.2015. 5 | */ 6 | public class Subject extends NamedItem { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson08/home01/vo/Subscription.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson08.home01.vo; 2 | 3 | /** 4 | * Created by User on 09.07.2015. 5 | */ 6 | public class Subscription extends NamedItem { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson08/home01/vo/User.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson08.home01.vo; 2 | 3 | /** 4 | * Created by User on 09.07.2015. 5 | */ 6 | public class User extends NamedItem { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson13/big01/Mouse.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson13.big01; 2 | 3 | public class Mouse 4 | { 5 | private int x; 6 | private int y; 7 | 8 | public Mouse(int x, int y) 9 | { 10 | this.x = x; 11 | this.y = y; 12 | } 13 | 14 | public int getX() 15 | { 16 | return x; 17 | } 18 | 19 | public int getY() 20 | { 21 | return y; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level23/lesson13/big01/SnakeDirection.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level23.lesson13.big01; 2 | 3 | 4 | public enum SnakeDirection 5 | { 6 | UP, 7 | RIGHT, 8 | DOWN, 9 | LEFT 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson02/home01/SelfInterfaceMarker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson02.home01; 2 | 3 | public interface SelfInterfaceMarker { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson02/home01/SelfInterfaceMarkerImpl.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson02.home01; 2 | 3 | 4 | 5 | public class SelfInterfaceMarkerImpl implements SelfInterfaceMarker { 6 | 7 | public SelfInterfaceMarkerImpl() { 8 | } 9 | 10 | 11 | public void consoleMethod() { 12 | 13 | } 14 | 15 | public boolean bool() { 16 | return true; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson02/home01/UnsupportedInterfaceMarkerException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson02.home01; 2 | 3 | 4 | public class UnsupportedInterfaceMarkerException extends Exception { 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson02/home01/Util.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson02.home01; 2 | 3 | 4 | import java.lang.reflect.Method; 5 | 6 | public class Util { 7 | 8 | //пример того, как можно использовать интерфейс-маркер 9 | //this method is available only for a SelfInterfaceMarker implementation 10 | public static void testClass(SelfInterfaceMarker interfaceMarker) throws UnsupportedInterfaceMarkerException { 11 | 12 | if (interfaceMarker == null) { 13 | throw new UnsupportedInterfaceMarkerException(); 14 | } 15 | 16 | for (Method method : interfaceMarker.getClass().getDeclaredMethods()) { 17 | System.out.println(method); 18 | } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home01/HasHeight.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home01; 2 | 3 | public interface HasHeight { 4 | double getHeight(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home01/HasWidth.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home01; 2 | 3 | public interface HasWidth { 4 | double getWidth(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home01/Point.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home01; 2 | 3 | public class Point { 4 | private double x; 5 | private double y; 6 | 7 | public Point(double x, double y) { 8 | this.x = x; 9 | this.y = y; 10 | } 11 | 12 | public double getX() { 13 | return x; 14 | } 15 | 16 | public double getY() { 17 | return y; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home02/Action.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home02; 2 | 3 | public interface Action { 4 | void someAction(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home02/FirstClass.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home02; 2 | 3 | public abstract class FirstClass implements Action { //first implementation 4 | 5 | protected FirstClass() { 6 | Solution.countActionObjects++; 7 | } 8 | 9 | public void someAction() { 10 | System.out.println("class FirstClass, method someAction"); 11 | } 12 | 13 | public abstract Action getDependantAction(); 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson04/home02/SecondClass.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson04.home02; 2 | 3 | public class SecondClass implements Action { //second implementation 4 | public static String SPECIFIC_ACTION_FOR_ANONYMOUS_SECOND_CLASS_PARAM = "\nSpecific action for anonymous SecondClass, param = "; 5 | 6 | private static String SECOND_CLASS_METHOD_STRING = "class SecondClass, method someAction"; 7 | 8 | public SecondClass() { 9 | Solution.countActionObjects++; 10 | } 11 | protected StringBuilder sb = new StringBuilder(SECOND_CLASS_METHOD_STRING); 12 | 13 | public void someAction() { 14 | System.out.println(sb.toString()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson06/home02/Mouse.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson06.home02; 2 | 3 | /* 4 | обратите внимание, как именно Mouse отличается от Dog 5 | Этот класс - привычный для вас. 6 | */ 7 | public class Mouse implements Pet, Sayable { 8 | @Override 9 | public Sayable toSayable(int i) { 10 | return this; 11 | } 12 | 13 | @Override 14 | public String say() { 15 | return "Мыша пищит."; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson06/home02/Pet.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson06.home02; 2 | 3 | public interface Pet { 4 | public Sayable toSayable(int i); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson06/home02/Sayable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson06.home02; 2 | 3 | public interface Sayable { 4 | String say(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson06/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson06.home02; 2 | 3 | import java.util.List; 4 | 5 | /* Как избежать Copy+Paste 6 | В классе Dog реализуйте логику метода toSayable, которая описана в джавадоке. 7 | */ 8 | public class Solution { 9 | public static void main(String[] args) { 10 | List pet = Util.getPets(); 11 | List pets = Util.convertPetToSayable(pet); 12 | Util.printDialog(pets); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson06/home02/SuperDog.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson06.home02; 2 | 3 | import java.text.SimpleDateFormat; 4 | 5 | public abstract class SuperDog { 6 | protected String getSuperQuotes() { 7 | //some logic here 8 | return " *** "; 9 | } 10 | 11 | protected SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy EEE"); 12 | } 13 | -------------------------------------------------------------------------------- /src/com/javarush/test/level24/lesson09/home01/Iterator.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level24.lesson09.home01; 2 | 3 | public interface Iterator { 4 | Iterator next(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson02/home01/Columnable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson02.home01; 2 | 3 | public interface Columnable { 4 | 5 | /** 6 | * @return полное имя колонки 7 | */ 8 | String getColumnName(); 9 | 10 | /** 11 | * Возвращает true, если колонка видимая, иначе false 12 | */ 13 | boolean isShown(); 14 | 15 | /** 16 | * Скрывает колонку - маркирует колонку -1 в массиве realOrder. 17 | * Сдвигает индексы отображаемых колонок, которые идут после скрытой 18 | */ 19 | void hide(); 20 | 21 | /** 22 | * Возвращает порядок константы в энуме. 23 | * 24 | * @return порядок константы в энуме 25 | */ 26 | int ordinal(); 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson02/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson02.task01; 2 | 3 | /* Новые возможности! 4 | Используя возможности enum-а реализуйте метод getLetterPosition, который должен возвращать позицию буквы (A - 1). 5 | Не должно быть закоментированного кода. 6 | */ 7 | public class Solution { 8 | public static void main(String[] args) { 9 | 10 | System.out.println(Alphabet.G.getLetterPosition()); 11 | } 12 | 13 | public enum Alphabet { 14 | A, B, C, D, E, 15 | F, G, H, I, J, 16 | K, L, M, N, O, 17 | P, Q, R, S, T, 18 | U, V, W, X, Y, Z; 19 | 20 | int getLetterPosition() { 21 | return ordinal() + 1; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson05/home01/LoggingStateThread.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson05.home01; 2 | 3 | 4 | public class LoggingStateThread extends Thread 5 | { 6 | Thread target; 7 | public LoggingStateThread(Thread target) 8 | { 9 | this.target = target; 10 | setDaemon(true); 11 | 12 | } 13 | 14 | @Override 15 | public void run() 16 | { 17 | State state = this.target.getState(); 18 | System.out.println(state); 19 | while (state != State.TERMINATED) 20 | { 21 | if (state != this.target.getState()) 22 | { 23 | state = this.target.getState(); 24 | System.out.println(state); 25 | } 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson07/home01/CustomThreadManipulator.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson07.home01; 2 | 3 | public interface CustomThreadManipulator { 4 | public void start(String threadName); 5 | public void stop(); 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson07/home02/CancellableTask.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson07.home02; 2 | 3 | import java.util.concurrent.Callable; 4 | import java.util.concurrent.RunnableFuture; 5 | 6 | public interface CancellableTask extends Callable { 7 | void cancel(); 8 | 9 | RunnableFuture newTask(); 10 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson11/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson11.task02; 2 | 3 | /* Первый закон Финэйгла: если эксперимент удался, что-то здесь не так... 4 | Обеспечьте переуступку кванта времени (переход хода для текущей нити) для последовательных выводов текста в консоль 5 | */ 6 | public class Solution { 7 | public static class YieldRunnable implements Runnable { 8 | private int index; 9 | 10 | public YieldRunnable(int index) { 11 | this.index = index; 12 | } 13 | 14 | public void run() { 15 | System.out.println("begin-" + index); 16 | Thread.yield(); 17 | System.out.println("end-" + index); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson16/big01/Bomb.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson16.big01; 2 | 3 | /** 4 | * Класс для бомбы. 5 | */ 6 | public class Bomb extends BaseObject 7 | { 8 | public Bomb(double x, double y) 9 | { 10 | super(x, y, 1); 11 | } 12 | 13 | /** 14 | * Отрисовываем себя на холсте. 15 | */ 16 | @Override 17 | public void draw(Canvas canvas) 18 | { 19 | canvas.setPoint(x,y,'B'); 20 | } 21 | 22 | /** 23 | * Двигаем себя вниз на один ход. 24 | */ 25 | @Override 26 | public void move() 27 | { 28 | y++; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson16/big01/Rocket.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level25.lesson16.big01; 2 | 3 | /** 4 | * Класс для объектов-ракета 5 | */ 6 | public class Rocket extends BaseObject 7 | { 8 | 9 | public Rocket(double x, double y) 10 | { 11 | super(x, y, 1); 12 | } 13 | 14 | /** 15 | * Метод рисует свой объект на "канвасе". 16 | */ 17 | @Override 18 | public void draw(Canvas canvas) 19 | { 20 | canvas.setPoint(x,y,'R'); 21 | } 22 | 23 | /** 24 | * Двигаем себя вверх на один ход. 25 | */ 26 | @Override 27 | public void move() 28 | { 29 | y--; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/com/javarush/test/level25/lesson16/big01/SpaceShip.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/com/javarush/test/level25/lesson16/big01/SpaceShip.java -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson10/home01/Consumer.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson10.home01; 2 | 3 | import java.util.concurrent.BlockingQueue; 4 | 5 | public class Consumer implements Runnable { 6 | protected BlockingQueue queue; 7 | 8 | public Consumer(BlockingQueue queue) { 9 | this.queue = queue; 10 | } 11 | 12 | public void run() { 13 | try { 14 | while (true) { 15 | System.out.println(queue.take()); 16 | Thread.sleep(500); 17 | } 18 | } catch (InterruptedException e) { 19 | System.out.println(String.format("[%s] thread was terminated", Thread.currentThread().getName())); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson10/home01/Producer.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson10.home01; 2 | 3 | import java.util.concurrent.BlockingQueue; 4 | 5 | public class Producer implements Runnable { 6 | protected BlockingQueue queue; 7 | 8 | public Producer(BlockingQueue queue) { 9 | this.queue = queue; 10 | } 11 | 12 | public void run() { 13 | try { 14 | int i = 0; 15 | while (true) { 16 | queue.put(String.valueOf(i++)); 17 | Thread.sleep(500); 18 | } 19 | } catch (InterruptedException e) { 20 | System.out.println(String.format("[%s] thread was terminated", Thread.currentThread().getName())); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson10/home02/Consumer.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson10.home02; 2 | 3 | import java.util.concurrent.ConcurrentHashMap; 4 | 5 | public class Consumer implements Runnable { 6 | protected ConcurrentHashMap map; 7 | 8 | public Consumer(ConcurrentHashMap map) { 9 | this.map = map; 10 | } 11 | 12 | public void run() { 13 | Thread currentThread = Thread.currentThread(); 14 | while (!currentThread.isInterrupted()) { 15 | if (!map.isEmpty()) { 16 | for (String key : map.keySet()) { 17 | System.out.println(map.remove(key)); 18 | } 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/Operation.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson15.big01; 2 | 3 | public enum Operation { 4 | 5 | LOGIN, INFO, DEPOSIT, WITHDRAW, EXIT; 6 | 7 | 8 | 9 | public static Operation getAllowableOperationByOrdinal(Integer i) { 10 | switch (i) { 11 | case 0: 12 | throw new IllegalArgumentException(); 13 | 14 | case 1: 15 | return INFO; 16 | case 2: 17 | return DEPOSIT; 18 | case 3: 19 | return WITHDRAW; 20 | case 4: 21 | return EXIT; 22 | 23 | default: 24 | throw new IllegalArgumentException(); 25 | } 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/command/Command.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson15.big01.command; 2 | 3 | import com.javarush.test.level26.lesson15.big01.exception.InterruptOperationException; 4 | 5 | interface Command { 6 | 7 | void execute() throws InterruptOperationException; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/exception/InterruptOperationException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson15.big01.exception; 2 | 3 | 4 | public class InterruptOperationException extends Exception { 5 | 6 | public InterruptOperationException() 7 | { 8 | } 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/exception/NotEnoughMoneyException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level26.lesson15.big01.exception; 2 | 3 | public class NotEnoughMoneyException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/common_en.properties: -------------------------------------------------------------------------------- 1 | the.end=Terminated. Thank you for visiting JavaRush cash machine. Good luck. 2 | choose.operation=Please choose an operation desired or type 'EXIT' for exiting 3 | operation.INFO=INFO 4 | operation.DEPOSIT=DEPOSIT 5 | operation.WITHDRAW=WITHDRAW 6 | operation.EXIT=EXIT 7 | invalid.data=Please specify valid data. 8 | choose.currency.code=Please choose a currency code, for example USD 9 | choose.denomination.and.count.format=Please specify integer denomination and integer count. For example '10 3' means 30 %s -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/deposit_en.properties: -------------------------------------------------------------------------------- 1 | before=Depositing... 2 | success.format=%d %s was deposited successfully 3 | invalid.data=Please specify valid data. -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/exit_en.properties: -------------------------------------------------------------------------------- 1 | exit.question.y.n=Do you really want to exit? 2 | yes=y 3 | thank.message=Thank you for visiting JavaRush cash machine. Good luck. -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/info_en.properties: -------------------------------------------------------------------------------- 1 | before=Information: 2 | no.money=No money available. -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/login_en.properties: -------------------------------------------------------------------------------- 1 | before=Logging in... 2 | specify.data=Please specify your credit card number and pin code or type 'EXIT' for exiting. 3 | success.format=Credit card [%s] is verified successfully! 4 | not.verified.format=Credit card [%s] is not verified. 5 | try.again.or.exit=Please try again or type 'EXIT' for urgent exiting 6 | try.again.with.details=Please specify valid credit card number - 12 digits, pin code - 4 digits. -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/verifiedCards.properties: -------------------------------------------------------------------------------- 1 | 123456789012=1234 2 | 234567890123=2345 3 | 345678901234=3456 -------------------------------------------------------------------------------- /src/com/javarush/test/level26/lesson15/big01/resources/withdraw_en.properties: -------------------------------------------------------------------------------- 1 | before=Withdrawing... 2 | success.format=%d %s was withdrawn successfully 3 | specify.amount=Please specify integer amount for withdrawing. 4 | specify.not.empty.amount=Please specify valid positive integer amount for withdrawing. 5 | not.enough.money=Not enough money on your account, please try again 6 | exact.amount.not.available=Exact amount is not available -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson02/task02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson02.task02; 2 | 3 | /* Нужный оператор 4 | Вставьте в код единственную строчку - оператор (не break), чтобы выводился треугольник из букв S 5 | */ 6 | public class Solution { 7 | public static void main(String args[]) { 8 | label: 9 | for (int i = 0; i < 10; i++) { 10 | 11 | for (int j = 0; j < 10; j++) { 12 | 13 | if (j > i) { 14 | System.out.println(); 15 | continue label; 16 | } 17 | 18 | System.out.print("S"); 19 | 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson04/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson04.home01; 2 | 3 | /* Модификаторы и дедлоки 4 | Расставьте модификаторы так, чтобы при работе с этим кодом появился дедлок 5 | */ 6 | public class Solution { 7 | public synchronized Object getData() { 8 | return new ThreadDeadlock().getData(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson04/home01/ThreadDeadlock.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson04.home01; 2 | 3 | public class ThreadDeadlock { 4 | Object data; 5 | public synchronized Object getData() { 6 | return data; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson06/home01/Apartment.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson06.home01; 2 | 3 | public class Apartment { 4 | private String location; 5 | private final RealEstate realEstate; 6 | 7 | public Apartment(RealEstate realEstate) { 8 | this.realEstate = realEstate; 9 | setLocation(String.valueOf(Math.random() * 10)); 10 | } 11 | 12 | public synchronized String getLocation() { 13 | return location; 14 | } 15 | 16 | public void setLocation(String location) { 17 | 18 | this.location = location; 19 | 20 | } 21 | 22 | public void revalidate(boolean isEmpty) { 23 | if (isEmpty) 24 | realEstate.up(this); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson09/home01/ConsumerTask.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson09.home01; 2 | 3 | public class ConsumerTask implements Runnable { 4 | private TransferObject transferObject; 5 | protected volatile boolean stopped; 6 | 7 | public ConsumerTask(TransferObject transferObject) { 8 | this.transferObject = transferObject; 9 | new Thread(this, "ConsumerTask").start(); 10 | } 11 | 12 | public void run() { 13 | while (!stopped) { 14 | transferObject.get(); 15 | } 16 | } 17 | 18 | public void stop() { 19 | stopped = true; 20 | } 21 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson09/home02/Mail.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson09.home02; 2 | 3 | public class Mail { 4 | private String text; 5 | 6 | public String getText() { 7 | return text; 8 | } 9 | 10 | public void setText(String text) { 11 | this.text = text; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson09/home02/Person.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson09.home02; 2 | 3 | public class Person implements Runnable { 4 | private final Mail mail; 5 | 6 | public Person(Mail mail) { 7 | this.mail = mail; 8 | } 9 | 10 | @Override 11 | public void run() { 12 | String name = Thread.currentThread().getName(); 13 | 14 | 15 | try { 16 | Thread.sleep(1000); 17 | 18 | mail.setText("Person [" + name + "] has written an email 'AAA'"); 19 | synchronized (mail) { 20 | 21 | 22 | mail.notifyAll(); 23 | 24 | } 25 | 26 | } catch (InterruptedException e) { 27 | e.printStackTrace(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson09/home02/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson09.home02; 2 | 3 | /* Расставьте wait-notify. 4 | Расставьте wait-notify. 5 | Пример вывода: 6 | Thread-0 MailServer has got: [Person [Thread-1] has written an email 'AAA'] in 1001 ms after start 7 | */ 8 | public class Solution { 9 | public static void main(String[] args) { 10 | Mail mail = new Mail(); 11 | Thread server = new Thread(new MailServer(mail)); 12 | Thread amigo = new Thread(new Person(mail)); 13 | 14 | server.start(); 15 | amigo.start(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson09/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson09.task01; 2 | 3 | import java.util.concurrent.CountDownLatch; 4 | 5 | /* CountDownLatch 6 | Дана стандартная реализация методологии wait-notify. 7 | Почитайте про CountDownLatch и перепишите тело метода someMethod используя поле latch. 8 | Весь лишний код удалите из класса. 9 | */ 10 | public abstract class Solution { 11 | 12 | private final CountDownLatch latch = new CountDownLatch(1); 13 | 14 | 15 | public void someMethod() throws InterruptedException { 16 | 17 | latch.await(); 18 | retrieveValue(); 19 | latch.countDown(); 20 | 21 | } 22 | 23 | abstract void retrieveValue(); 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson15/big01/ad/NoVideoAvailableException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson15.big01.ad; 2 | 3 | public class NoVideoAvailableException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson15/big01/kitchen/Waitor.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson15.big01.kitchen; 2 | 3 | 4 | import com.javarush.test.level27.lesson15.big01.ConsoleHelper; 5 | 6 | import java.util.Observable; 7 | import java.util.Observer; 8 | 9 | public class Waitor implements Observer { 10 | 11 | @Override 12 | public void update(Observable observable, Object o) 13 | { 14 | if (o instanceof Order && observable instanceof Cook) 15 | { 16 | Cook cook = (Cook) observable; 17 | Order order = (Order) o; 18 | 19 | ConsoleHelper.writeMessage(order + " was cooked by " + cook); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson15/big01/statistic/event/EventDataRow.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson15.big01.statistic.event; 2 | 3 | import java.util.Date; 4 | 5 | public interface EventDataRow { 6 | 7 | EventType getType(); 8 | Date getDate(); 9 | int getTime(); 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level27/lesson15/big01/statistic/event/EventType.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level27.lesson15.big01.statistic.event; 2 | 3 | 4 | public enum EventType { 5 | 6 | COOKED_ORDER, SELECTED_VIDEOS, NO_AVAILABLE_VIDEO 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson10/home01/Plant.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level28.lesson10.home01; 2 | 3 | import java.util.concurrent.atomic.AtomicInteger; 4 | 5 | public class Plant extends Character { 6 | private final static AtomicInteger idSequence = new AtomicInteger(); 7 | private final int id = idSequence.incrementAndGet(); 8 | 9 | protected int getId() { 10 | return id; 11 | } 12 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson10/home01/Zombie.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level28.lesson10.home01; 2 | 3 | import java.util.concurrent.atomic.AtomicInteger; 4 | 5 | public class Zombie extends Character { 6 | private final static AtomicInteger idSequence = new AtomicInteger(); 7 | private final int id = idSequence.incrementAndGet(); 8 | 9 | protected int getId() { 10 | return id; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson10/home01/output.txt: -------------------------------------------------------------------------------- 1 | Plant #1 присоединился к игре 2 | Plant #2 присоединился к игре 3 | Plant #1 готовится играть 4 | Zombie #1 присоединился к игре 5 | Zombie #2 присоединился к игре 6 | Zombie #3 присоединился к игре 7 | Plant #2 готовится играть 8 | Zombie #2 готовится играть 9 | Zombie #1 готовится играть 10 | Zombie #3 готовится играть 11 | Игра началась! 12 | Zombie #1 вступил в игру 13 | Zombie #3 вступил в игру 14 | Plant #1 вступил в игру 15 | Zombie #2 вступил в игру 16 | Plant #2 вступил в игру 17 | Zombie #2 умер 18 | Plant #2 умер 19 | Plant #1 умер 20 | Zombie #3 умер 21 | Zombie #1 умер -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson15/big01/Controller.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level28.lesson15.big01; 2 | 3 | import com.javarush.test.level28.lesson15.big01.model.Model; 4 | 5 | 6 | public class Controller { 7 | 8 | private Model model; 9 | 10 | 11 | public Controller(Model model) { 12 | if (model == null) { 13 | throw new IllegalArgumentException(); 14 | } 15 | this.model = model; 16 | } 17 | 18 | 19 | public void onCitySelect(String cityName) { 20 | model.selectCity(cityName); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson15/big01/model/Strategy.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level28.lesson15.big01.model; 2 | 3 | import com.javarush.test.level28.lesson15.big01.vo.Vacancy; 4 | import java.util.List; 5 | 6 | public interface Strategy { 7 | 8 | List getVacancies(String searchString); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson15/big01/view/View.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level28.lesson15.big01.view; 2 | 3 | import com.javarush.test.level28.lesson15.big01.Controller; 4 | import com.javarush.test.level28.lesson15.big01.vo.Vacancy; 5 | 6 | import java.util.List; 7 | 8 | public interface View { 9 | 10 | void update(List vacancies); 11 | void setController(Controller controller); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level28/lesson15/big01/view/vacancies.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/com/javarush/test/level28/lesson15/big01/view/vacancies.html -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson02/task02/file.txt: -------------------------------------------------------------------------------- 1 | This file will be opened by Notepad.exe 2 | You can change the content. -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson09/bonus01/Computable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson09.bonus01; 2 | 3 | /* Argument and Value are generic types*/ 4 | public interface Computable { 5 | Value compute(Argument argument) throws InterruptedException; 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson09/bonus01/Square.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson09.bonus01; 2 | 3 | public class Square implements Computable { 4 | @Override 5 | public Integer compute(Integer integer) throws InterruptedException { 6 | int val = integer.intValue(); 7 | return val * val; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson09/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson09.task01; 2 | 3 | import java.math.BigDecimal; 4 | 5 | /* Этот странный BigDecimal 6 | Исправьте ошибку реализации, приводящую к погрешности вычисления, в методе getValue. 7 | Сигнатуру метода не менять. Округление не использовать. 8 | Читайте доп. статью про особенности автобоксинга. 9 | */ 10 | public class Solution { 11 | public static void main(String[] args) { 12 | System.out.println(getValue(1.1d, 1.2d)); 13 | } 14 | 15 | public static BigDecimal getValue(double v1, double v2) { 16 | return new BigDecimal(v1 + "").add(new BigDecimal(v2 + "")); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/car/Cabriolet.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.car; 2 | 3 | 4 | public class Cabriolet extends Car { 5 | 6 | public Cabriolet(int numberOfPassengers) { 7 | super(2, numberOfPassengers); 8 | } 9 | 10 | 11 | @Override 12 | public int getMaxSpeed() { 13 | final int MAX_CABRIOLET_SPEED = 90; 14 | return MAX_CABRIOLET_SPEED; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/car/Sedan.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.car; 2 | 3 | 4 | public class Sedan extends Car { 5 | 6 | public Sedan(int numberOfPassengers) { 7 | super(1, numberOfPassengers); 8 | } 9 | 10 | 11 | @Override 12 | public int getMaxSpeed() { 13 | final int MAX_SEDAN_SPEED = 120; 14 | return MAX_SEDAN_SPEED; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/car/Truck.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.car; 2 | 3 | 4 | public class Truck extends Car { 5 | 6 | public Truck(int numberOfPassengers) { 7 | super(0, numberOfPassengers); 8 | } 9 | 10 | 11 | @Override 12 | public int getMaxSpeed() { 13 | final int MAX_TRUCK_SPEED = 80; 14 | return MAX_TRUCK_SPEED; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/Alive.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | 4 | public interface Alive { 5 | 6 | void live(); 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/BloodGroup.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | 4 | public class BloodGroup { 5 | 6 | private final int code; 7 | 8 | private BloodGroup(int code) { 9 | this.code = code; 10 | } 11 | 12 | public int getCode() { 13 | return code; 14 | } 15 | 16 | public static BloodGroup first() { 17 | return new BloodGroup(1); 18 | } 19 | 20 | public static BloodGroup second() { 21 | return new BloodGroup(2); 22 | } 23 | 24 | public static BloodGroup third() { 25 | return new BloodGroup(3); 26 | } 27 | 28 | public static BloodGroup fourth() { 29 | return new BloodGroup(4); 30 | } 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/Soldier.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | 4 | public class Soldier extends Human { 5 | 6 | public Soldier(String name, int age) { 7 | 8 | super(name, age); 9 | } 10 | 11 | public void live() { 12 | fight(); 13 | } 14 | public void fight() { 15 | } 16 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/Teacher.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | 4 | public class Teacher extends UniversityPerson { 5 | 6 | private int numberOfStudents; 7 | 8 | 9 | public Teacher(String name, int age, int numberOfStudents) { 10 | 11 | super(name, age); 12 | this.numberOfStudents = numberOfStudents; 13 | } 14 | 15 | 16 | public void live() { 17 | teach(); 18 | } 19 | 20 | public void teach() { 21 | } 22 | 23 | 24 | 25 | @Override 26 | public String getPosition() { 27 | return "Преподаватель"; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/UniversityPerson.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | 4 | public class UniversityPerson extends Human { 5 | 6 | private University university; 7 | 8 | 9 | public UniversityPerson(String name, int age) { 10 | super(name, age); 11 | } 12 | 13 | 14 | public University getUniversity() { 15 | return university; 16 | } 17 | 18 | public void setUniversity(University university) { 19 | this.university = university; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/human/Worker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.human; 2 | 3 | public class Worker extends Human { 4 | 5 | private double salary; 6 | private String company; 7 | 8 | public Worker(String name, int age) 9 | { 10 | super(name, age); 11 | } 12 | 13 | 14 | public void live() { 15 | super.live(); 16 | } 17 | 18 | public double getSalary() { 19 | return salary; 20 | } 21 | 22 | public void setSalary(double salary) { 23 | this.salary = salary; 24 | } 25 | 26 | public String getCompany() { 27 | return company; 28 | } 29 | 30 | public void setCompany(String company) { 31 | this.company = company; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/user/Address.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.user; 2 | 3 | 4 | public class Address { 5 | 6 | private String country; 7 | private String city; 8 | private String house; 9 | 10 | 11 | public String getCountry() { 12 | return country; 13 | } 14 | public void setCountry(String country) { 15 | this.country = country; 16 | } 17 | public String getCity() { 18 | return city; 19 | } 20 | public void setCity(String city) { 21 | this.city = city; 22 | } 23 | public String getHouse() { 24 | return house; 25 | } 26 | public void setHouse(String house) { 27 | this.house = house; 28 | } 29 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level29/lesson15/big01/user/Work.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level29.lesson15.big01.user; 2 | 3 | public class Work { 4 | 5 | private String boss; 6 | 7 | 8 | public String getBoss() { 9 | return boss; 10 | } 11 | public void setBoss(String boss) { 12 | this.boss = boss; 13 | } 14 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson02/home01/NumerationSystem.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson02.home01; 2 | 3 | public interface NumerationSystem { 4 | int getNumerationSystemIntValue(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson02/home01/NumerationSystemType.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson02.home01; 2 | 3 | public enum NumerationSystemType implements NumerationSystem { 4 | _16, 5 | _12, 6 | _10, 7 | _9, 8 | _8, 9 | _7, 10 | _6, 11 | _5, 12 | _4, 13 | _3, 14 | _2; 15 | 16 | @Override 17 | public int getNumerationSystemIntValue() { 18 | return Integer.parseInt(this.name().substring(1)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson08/home01/Pair.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson08.home01; 2 | 3 | public class Pair { 4 | private int x; 5 | private int y; 6 | 7 | public Pair(int x, int y) { 8 | this.x = x; 9 | this.y = y; 10 | } 11 | 12 | @Override 13 | public String toString() { 14 | return String.format("x=%d, y=%d", x, y); 15 | } 16 | 17 | public void swap() { 18 | 19 | x = x ^ y; 20 | y = x ^ y; 21 | x = x ^ y; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson08/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson08.home01; 2 | 3 | /* Swap по-новому 4 | В классе Pair реализуйте метод swap, который должен для x, y менять местами их значения. 5 | Можно использовать только операции 1)исключающее или, 2) присваивание 6 | Не оставляйте комментарии, не меняйте остальной код 7 | */ 8 | public class Solution { 9 | public static void main(String[] args) { 10 | /* expected output 11 | x=4, y=5 12 | x=5, y=4 13 | */ 14 | 15 | Pair pair = new Pair(4, 5); 16 | System.out.println(pair); 17 | pair.swap(); 18 | System.out.println(pair); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson15/big01/Message.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson15.big01; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Message implements Serializable { 6 | 7 | private final MessageType type; 8 | private final String data; 9 | 10 | 11 | //Constructors 12 | public Message(MessageType type, String data) { 13 | this.type = type; 14 | this.data = data; 15 | } 16 | 17 | public Message(MessageType type) { 18 | this.type = type; 19 | this.data = null; 20 | } 21 | 22 | 23 | //getters 24 | 25 | public MessageType getType() { 26 | return type; 27 | } 28 | 29 | public String getData() { 30 | return data; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson15/big01/MessageType.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level30.lesson15.big01; 2 | 3 | 4 | public enum MessageType { 5 | NAME_REQUEST, USER_NAME, NAME_ACCEPTED, TEXT, USER_ADDED, USER_REMOVED 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level30/lesson15/big01/client/ClientGuiController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/com/javarush/test/level30/lesson15/big01/client/ClientGuiController.java -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson08/home01/FileData.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson08.home01; 2 | 3 | public interface FileData { 4 | boolean isHidden(); 5 | 6 | boolean isExecutable(); 7 | 8 | boolean isDirectory(); 9 | 10 | boolean isWritable(); 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson10/home01/properties.txt: -------------------------------------------------------------------------------- 1 | name=Amigo 2 | level=31 3 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson10/home01/properties.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Amigo 5 | 31 6 | 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/Operation.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01; 2 | 3 | public enum Operation { 4 | CREATE, 5 | ADD, 6 | REMOVE, 7 | EXTRACT, 8 | CONTENT, 9 | EXIT 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/command/Command.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01.command; 2 | 3 | public interface Command { 4 | void execute() throws Exception; 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/command/ExitCommand.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01.command; 2 | 3 | import com.javarush.test.level31.lesson15.big01.ConsoleHelper; 4 | 5 | public class ExitCommand extends ZipCommand { 6 | 7 | @Override 8 | public void execute() throws Exception { 9 | ConsoleHelper.writeMessage("До встречи!"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/command/ZipCommand.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01.command; 2 | 3 | import com.javarush.test.level31.lesson15.big01.ConsoleHelper; 4 | import com.javarush.test.level31.lesson15.big01.ZipFileManager; 5 | 6 | import java.nio.file.Path; 7 | import java.nio.file.Paths; 8 | 9 | public abstract class ZipCommand implements Command { 10 | 11 | public ZipFileManager getZipFileManager() throws Exception{ 12 | ConsoleHelper.writeMessage("Введите полный путь файла архива:"); 13 | Path zipPath = Paths.get(ConsoleHelper.readString()); 14 | return new ZipFileManager(zipPath); 15 | } 16 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/exception/PathIsNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01.exception; 2 | 3 | public class PathIsNotFoundException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level31/lesson15/big01/exception/WrongZipFileException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level31.lesson15.big01.exception; 2 | 3 | public class WrongZipFileException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/bonus01/Big.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.bonus01; 2 | 3 | public interface Big extends Item { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/bonus01/Item.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.bonus01; 2 | 3 | public interface Item { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/bonus01/ItemInvocationHandler.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.bonus01; 2 | 3 | import java.lang.reflect.InvocationHandler; 4 | import java.lang.reflect.Method; 5 | 6 | public class ItemInvocationHandler implements InvocationHandler { 7 | @Override 8 | public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { 9 | return null; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/bonus01/Small.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.bonus01; 2 | 3 | public interface Small { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/home01/SomeInterfaceWithMethods.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.home01; 2 | 3 | public interface SomeInterfaceWithMethods { 4 | void voidMethodWithoutArgs(); 5 | 6 | String stringMethodWithoutArgs(); 7 | 8 | void voidMethodWithIntArg(int i); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson08/home01/SomeInterfaceWithMethodsImpl.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson08.home01; 2 | 3 | public class SomeInterfaceWithMethodsImpl implements SomeInterfaceWithMethods { 4 | public void voidMethodWithoutArgs() { 5 | System.out.println("inside voidMethodWithoutArgs"); 6 | } 7 | 8 | public String stringMethodWithoutArgs() { 9 | System.out.println("inside stringMethodWithoutArgs"); 10 | return null; 11 | } 12 | 13 | public void voidMethodWithIntArg(int i) { 14 | System.out.println("inside voidMethodWithIntArg"); 15 | voidMethodWithoutArgs(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson10/home01/DoubleString.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson10.home01; 2 | 3 | import java.rmi.Remote; 4 | import java.rmi.RemoteException; 5 | 6 | public interface DoubleString extends Remote 7 | { 8 | public String doubleString(String str) throws RemoteException; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson10/home01/DoubleStringImpl.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson10.home01; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | public class DoubleStringImpl implements DoubleString { 6 | public String doubleString(String str) throws RemoteException { 7 | return str + str; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/ExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01; 2 | 3 | //Обработчик исключительных ситуаций 4 | 5 | public class ExceptionHandler { 6 | 7 | public static void log(Exception e) { 8 | System.out.println(e.toString()); 9 | } 10 | } 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/HTMLFileFilter.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01; 2 | 3 | import javax.swing.filechooser.FileFilter; 4 | import java.io.File; 5 | 6 | public class HTMLFileFilter extends FileFilter{ 7 | 8 | 9 | @Override 10 | public boolean accept(File f) { 11 | 12 | if (f.isDirectory()) { 13 | return true; 14 | } 15 | else if (!f.isDirectory()) { 16 | String fileName = f.getName().toLowerCase(); 17 | return fileName.endsWith(".html") || fileName.endsWith(".htm"); 18 | } 19 | 20 | return false; 21 | } 22 | 23 | @Override 24 | public String getDescription() { 25 | return "HTML и HTM файлы"; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/actions/RedoAction.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01.actions; 2 | 3 | import com.javarush.test.level32.lesson15.big01.View; 4 | 5 | import javax.swing.*; 6 | import java.awt.event.ActionEvent; 7 | 8 | /** 9 | * Класс возврата действия RedoAction 10 | */ 11 | public class RedoAction extends AbstractAction { 12 | 13 | private View view; 14 | 15 | public RedoAction(View view) { 16 | this.view = view; 17 | } 18 | 19 | @Override 20 | public void actionPerformed(ActionEvent e) { 21 | view.redo(); 22 | } 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/actions/UndoAction.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01.actions; 2 | 3 | import com.javarush.test.level32.lesson15.big01.View; 4 | 5 | import javax.swing.*; 6 | import java.awt.event.ActionEvent; 7 | 8 | /** 9 | * Класс отмены действия UndoAction. 10 | * Он должен наследоваться от AbstractAction и содержать конструктор UndoAction(View view). 11 | */ 12 | public class UndoAction extends AbstractAction { 13 | 14 | private View view; 15 | 16 | public UndoAction(View view) { 17 | this.view = view; 18 | } 19 | 20 | 21 | @Override 22 | public void actionPerformed(ActionEvent e) { 23 | view.undo(); 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/listeners/FrameListener.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01.listeners; 2 | 3 | import com.javarush.test.level32.lesson15.big01.View; 4 | 5 | import java.awt.event.WindowAdapter; 6 | import java.awt.event.WindowEvent; 7 | 8 | 9 | public class FrameListener extends WindowAdapter { 10 | 11 | private View view; 12 | 13 | public FrameListener(View view) { 14 | this.view = view; 15 | } 16 | 17 | @Override 18 | public void windowClosing(WindowEvent e) { 19 | view.exit(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/listeners/TabbedPaneChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01.listeners; 2 | 3 | //Этот класс будет слушать и обрабатывать изменения состояния панели вкладок 4 | 5 | import com.javarush.test.level32.lesson15.big01.View; 6 | 7 | import javax.swing.event.ChangeEvent; 8 | import javax.swing.event.ChangeListener; 9 | 10 | public class TabbedPaneChangeListener implements ChangeListener { 11 | 12 | private View view; 13 | 14 | 15 | public TabbedPaneChangeListener(View view) { 16 | this.view = view; 17 | } 18 | 19 | @Override 20 | public void stateChanged(ChangeEvent e) { 21 | view.selectedTabChanged(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level32/lesson15/big01/listeners/UndoListener.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level32.lesson15.big01.listeners; 2 | 3 | import javax.swing.event.UndoableEditEvent; 4 | import javax.swing.event.UndoableEditListener; 5 | import javax.swing.undo.UndoManager; 6 | 7 | /** 8 | * Этот класс будет следить за правками, которые можно отменить или вернуть. 9 | */ 10 | public class UndoListener implements UndoableEditListener { 11 | 12 | private UndoManager undoManager; 13 | 14 | public UndoListener(UndoManager undoManager) { 15 | this.undoManager = undoManager; 16 | } 17 | 18 | @Override 19 | public void undoableEditHappened(UndoableEditEvent e) { 20 | undoManager.addEdit(e.getEdit()); 21 | 22 | } 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson05/home05/Auto.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson05.home05; 2 | 3 | import com.fasterxml.jackson.annotation.JsonTypeInfo; 4 | 5 | @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property="className") 6 | public abstract class Auto { 7 | protected String name; 8 | protected String owner; 9 | protected int age; 10 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson05/home05/Car.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson05.home05; 2 | 3 | public class Car extends Auto { 4 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson05/home05/Motorbike.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson05.home05; 2 | 3 | public class Motorbike extends Auto { 4 | private String owner; 5 | 6 | public Motorbike(String name) { 7 | this.name = name; 8 | } 9 | 10 | public String getName() { 11 | return name; 12 | } 13 | 14 | public String getOwner() { 15 | return owner; 16 | } 17 | 18 | public void setOwner(String owner) { 19 | this.owner = owner; 20 | } 21 | 22 | @Override 23 | public String toString() { 24 | return "Motorbike{" + 25 | "name='" + name + '\'' + 26 | ", owner='" + owner + '\'' + 27 | '}'; 28 | } 29 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson10/home01/Shop.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson10.home01; 2 | 3 | 4 | import javax.xml.bind.annotation.XmlElementWrapper; 5 | import javax.xml.bind.annotation.XmlRootElement; 6 | import javax.xml.bind.annotation.XmlType; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | @XmlType(name="shop") 11 | @XmlRootElement 12 | public class Shop 13 | { 14 | @XmlElementWrapper(name="goods", nillable = true) 15 | public List names = new ArrayList<>(); 16 | public int count; 17 | public String profit; 18 | public List secretData = new ArrayList<>(); 19 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson10/home01/data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | S1 5 | S2 6 | 7 | 12 8 | 123.4 9 | String1 10 | String2 11 | String3 12 | String4 13 | String5 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson15/big01/ExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson15.big01; 2 | 3 | //Обработчик исключительных ситуаций 4 | 5 | public class ExceptionHandler { 6 | 7 | public static void log(Exception e) { 8 | System.out.println(e.toString()); 9 | } 10 | } 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson15/big01/Helper.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson15.big01; 2 | 3 | 4 | import java.math.BigInteger; 5 | import java.security.SecureRandom; 6 | 7 | public class Helper { 8 | 9 | //генерировать случайную строку 10 | public static String generateRandomString() { 11 | 12 | SecureRandom secureRandom = new SecureRandom(); 13 | return new BigInteger(100, secureRandom).toString(32); 14 | } 15 | 16 | public static void printMessage(String message) { 17 | System.out.println(message); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level33/lesson15/big01/strategies/StorageStrategy.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level33.lesson15.big01.strategies; 2 | 3 | public interface StorageStrategy { 4 | 5 | //должен вернуть true, если хранилище содержит переданный ключ 6 | boolean containsKey(Long key); 7 | 8 | //должен вернуть true, если хранилище содержит переданное значение 9 | boolean containsValue(String value); 10 | 11 | //добавить в хранилище новую пару ключ –значение 12 | void put(Long key, String value); 13 | 14 | //вернуть ключ для переданного значения 15 | Long getKey(String value); 16 | 17 | //вернуть значение для переданного ключа 18 | String getValue(Long key); 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level34/lesson15/big01/controller/EventListener.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level34.lesson15.big01.controller; 2 | 3 | import com.javarush.test.level34.lesson15.big01.model.Direction; 4 | 5 | public interface EventListener { 6 | 7 | void move(Direction direction); 8 | void restart(); 9 | void startNextLevel(); 10 | void levelCompleted(int level); 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level34/lesson15/big01/model/Direction.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level34.lesson15.big01.model; 2 | 3 | 4 | public enum Direction { 5 | 6 | LEFT, RIGHT, UP, DOWN 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level34/lesson15/big01/model/Movable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level34.lesson15.big01.model; 2 | 3 | public interface Movable { 4 | 5 | void move(int x, int y); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level34/lesson15/big01/model/Wall.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level34.lesson15.big01.model; 2 | 3 | import java.awt.*; 4 | 5 | public class Wall extends CollisionObject { 6 | 7 | public Wall(int x, int y) { 8 | super(x, y); 9 | } 10 | 11 | @Override 12 | public void draw(Graphics graphics) { 13 | 14 | graphics.setColor(Color.DARK_GRAY); 15 | 16 | int leftUpperCornerX = getX() - getWidth() / 2; 17 | int leftUpperCornerY = getY() - getHeight() / 2; 18 | 19 | 20 | graphics.drawRect(leftUpperCornerX, leftUpperCornerY, getWidth(), getHeight()); 21 | graphics.fillRect(leftUpperCornerX, leftUpperCornerY, getWidth(), getHeight()); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson04/home01/GenericStatic.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson04.home01; 2 | 3 | public class GenericStatic { 4 | public static Object someStaticMethod(Object genericObject) { 5 | System.out.println(genericObject); 6 | return genericObject; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson04/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson04.home01; 2 | /* Вызов статического метода 3 | Измените статический метод в классе GenericStatic так, чтобы он стал дженериком. 4 | Пример вызова дан в методе main. 5 | */ 6 | public class Solution { 7 | public static void main(String[] args) { 8 | 9 | Object number = GenericStatic.someStaticMethod(new Integer(3)); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson04/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson04.task01; 2 | 3 | import java.util.List; 4 | 5 | /* Знакомство с дженериками 6 | Параметризируйте классы SomeClass и Solution следующим образом: 7 | 1. SomeClass должен работать с типами, которые наследуются от Number; 8 | 2. Solution должен работать с типами, которые наследуются от List, который в свою очередь параметризируется типом SomeClass. 9 | */ 10 | public class Solution < K extends List> { 11 | public static class SomeClass { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson06/home01/ClassForGenerics.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson06.home01; 2 | 3 | public class ClassForGenerics { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson06/home01/InterfaceForGenerics.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson06.home01; 2 | 3 | public interface InterfaceForGenerics { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson08/bonus01/Convertable.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson08.bonus01; 2 | 3 | public interface Convertable { 4 | Key getKey(); 5 | } 6 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson08/bonus01/ConvertableBook.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson08.bonus01; 2 | 3 | public class ConvertableBook implements Convertable { 4 | private String name; 5 | 6 | public ConvertableBook(String name) { 7 | this.name = name; 8 | } 9 | 10 | @Override 11 | public String getKey() { 12 | return name; 13 | } 14 | 15 | @Override 16 | public String toString() { 17 | return "ConvertableBook{" + 18 | "name='" + name + '\'' + 19 | '}'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson08/bonus01/ConvertableUser.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson08.bonus01; 2 | 3 | public class ConvertableUser implements Convertable { 4 | private Integer id; 5 | private String name; 6 | 7 | public ConvertableUser(Integer id, String name) { 8 | this.id = id; 9 | this.name = name; 10 | } 11 | 12 | @Override 13 | public Integer getKey() { 14 | return id; 15 | } 16 | 17 | @Override 18 | public String toString() { 19 | return "ConvertableUser{" + 20 | "id=" + id + 21 | ", name='" + name + '\'' + 22 | '}'; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson08/bonus01/ConvertableUtil.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson08.bonus01; 2 | 3 | 4 | import java.util.HashMap; 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | 9 | public class ConvertableUtil { 10 | 11 | public static Map convert(List list ) { 12 | 13 | Map> result = new HashMap(); 14 | 15 | for (Convertable key : list) { 16 | result.put(key.getKey(), key); 17 | } 18 | 19 | 20 | 21 | 22 | 23 | 24 | return result; 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson10/bonus01/Animal.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson10.bonus01; 2 | 3 | public interface Animal { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level35/lesson10/bonus01/data/Cat.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level35.lesson10.bonus01.data; 2 | 3 | import com.javarush.test.level35.lesson10.bonus01.Animal; 4 | 5 | public class Cat implements Animal { 6 | public Cat() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/big01/Util.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.big01; 2 | 3 | import com.javarush.test.level36.lesson04.big01.bean.User; 4 | 5 | public final class Util { 6 | public static final String DELETED_MARKER = " (deleted)"; 7 | 8 | public static boolean isUserDeleted(User user) { 9 | return user.getName().endsWith(DELETED_MARKER); 10 | } 11 | 12 | public static void markDeleted(User user) { 13 | if (User.NULL_USER != user && !Util.isUserDeleted(user)) { 14 | user.setName(user.getName() + DELETED_MARKER); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/big01/model/Model.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.big01.model; 2 | 3 | /** 4 | * Используя любую модель должна быть возможность получить все необходимые данные для отображения 5 | */ 6 | public interface Model { 7 | 8 | ModelData getModelData(); 9 | 10 | void loadUsers(); 11 | 12 | void loadDeletedUsers(); 13 | 14 | void loadUserById(long userId); 15 | 16 | void deleteUserById(long id); 17 | 18 | void changeUserData(String name, long id, int level); 19 | } 20 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/big01/model/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.big01.model.service; 2 | 3 | import com.javarush.test.level36.lesson04.big01.bean.User; 4 | 5 | import java.util.List; 6 | 7 | public interface UserService { 8 | public User deleteUser(long id); 9 | 10 | public User createOrUpdateUser(String name, long id, int level); 11 | 12 | public List getUsersByName(String name); 13 | 14 | public List getAllDeletedUsers(); 15 | 16 | public List getUsersBetweenLevels(int fromLevel, int toLevel); 17 | 18 | List filterOnlyActiveUsers(List allUsers); 19 | 20 | User getUsersById(long userId); 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/big01/view/View.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.big01.view; 2 | 3 | import com.javarush.test.level36.lesson04.big01.controller.Controller; 4 | import com.javarush.test.level36.lesson04.big01.model.ModelData; 5 | 6 | public interface View { 7 | 8 | void refresh(ModelData modelData); 9 | void setController(Controller controller); 10 | 11 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/home01/Controller.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.home01; 2 | 3 | 4 | import java.util.List; 5 | 6 | public class Controller { 7 | 8 | private Model model = new Model(); 9 | 10 | public List onDataListShow() { 11 | return model.getStringDataList(); 12 | } 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/home01/Model.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.home01; 2 | 3 | 4 | import java.util.List; 5 | 6 | public class Model { 7 | 8 | private Service service = new Service(); 9 | 10 | public List getStringDataList() { 11 | return service.getData(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/home01/Service.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.home01; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class Service { 7 | 8 | public List getData() { 9 | List data = new ArrayList() {{ 10 | add("First string"); 11 | add("Second string"); 12 | add("Third string"); 13 | }}; 14 | return data; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/home01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.home01; 2 | 3 | 4 | /* MVC - простая версия 5 | В отдельных файлах создай классы Service, Model, View, Controller. 6 | Распредели методы из класса Solution по созданным классам учитывая, что должен получиться MVC. 7 | Создай нужные поля класса при необходимости. 8 | Не добавляй своих других методов. 9 | Метод main оставь в классе Solution. 10 | */ 11 | public class Solution { 12 | public static void main(String[] args) { 13 | View view = new View(); 14 | view.fireEventShowData(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson04/home01/View.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson04.home01; 2 | 3 | 4 | public class View { 5 | 6 | private Controller controller = new Controller(); 7 | 8 | public void fireEventShowData() { 9 | System.out.println(controller.onDataListShow()); 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson06.task01; 2 | 3 | 4 | import java.util.Collections; 5 | 6 | /* Найти класс по описанию 7 | 1. Реализует интерфейс List 8 | 2. Является приватным статическим классом внутри популярного утилитного класса 9 | 3. Доступ по индексу запрещен - кидается исключение IndexOutOfBoundsException 10 | 4. Используйте рефлекшн, чтобы добраться до искомого класса 11 | */ 12 | public class Solution { 13 | public static void main(String[] args) { 14 | System.out.println(getExpectedClass()); 15 | } 16 | 17 | public static Class getExpectedClass() { 18 | 19 | return Collections.EMPTY_LIST.getClass(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson08/bonus01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson08.bonus01; 2 | 3 | /* Разбираемся в красно-черном дереве 4 | Дана реализация красно-черного дерева. 5 | Некоторые методы сломаны. Разберитесь в коде и исправьте ошибки. 6 | Метод main не участвует в тестировании. 7 | Все модификатры правильные. 8 | Имена переменных и методов не изменяйте. 9 | */ 10 | public class Solution { 11 | public static void main(String[] args) { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson10/bonus01/HiddenClass.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson10.bonus01; 2 | 3 | public interface HiddenClass { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson10/bonus01/data/second/HiddenClassImplFirst.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson10.bonus01.data.second; 2 | 3 | import com.javarush.test.level36.lesson10.bonus01.HiddenClass; 4 | 5 | public class HiddenClassImplFirst implements HiddenClass { 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson10/bonus01/data/second/HiddenClassImplSecond.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson10.bonus01.data.second; 2 | 3 | import com.javarush.test.level36.lesson10.bonus01.HiddenClass; 4 | 5 | public class HiddenClassImplSecond implements HiddenClass { 6 | private HiddenClassImplSecond() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson10/bonus01/data/second/PackageAccessClass.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson10.bonus01.data.second; 2 | 3 | import com.javarush.test.level36.lesson10.bonus01.HiddenClass; 4 | 5 | class PackageAccessClass implements HiddenClass { 6 | PackageAccessClass() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level36/lesson10/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level36.lesson10.task01; 2 | 3 | import java.util.concurrent.DelayQueue; 4 | 5 | /* Найти класс по описанию 6 | 1. Реализует интерфейс Queue 7 | 2. Используется при работе с трэдами 8 | 3. Из этой очереди элементы могут быть взяты только тогда, когда они заэкспарятся, их время задержки истекло 9 | 4. Головой очереди является элемент, который заэкспарился раньше всех 10 | */ 11 | public class Solution { 12 | public static void main(String[] args) { 13 | System.out.println(getExpectedClass()); 14 | } 15 | 16 | public static Class getExpectedClass() { 17 | Class c = DelayQueue.class; 18 | 19 | return c; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/AbstractFactory.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01; 2 | 3 | 4 | public interface AbstractFactory { 5 | 6 | Human getPerson(int age); 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/FactoryProducer.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01; 2 | 3 | 4 | import com.javarush.test.level37.lesson04.big01.female.FemaleFactory; 5 | import com.javarush.test.level37.lesson04.big01.male.MaleFactory; 6 | 7 | public class FactoryProducer { 8 | 9 | public static enum HumanFactoryType { 10 | MALE, FEMALE 11 | } 12 | 13 | public static AbstractFactory getFactory(HumanFactoryType humanFactoryType) { 14 | if (humanFactoryType.equals(HumanFactoryType.MALE)) { 15 | return new MaleFactory(); 16 | } 17 | else { 18 | return new FemaleFactory(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/Human.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01; 2 | 3 | /** 4 | * For all humans 5 | */ 6 | public interface Human { 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/female/FemaleFactory.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.female; 2 | 3 | import com.javarush.test.level37.lesson04.big01.AbstractFactory; 4 | import com.javarush.test.level37.lesson04.big01.Human; 5 | 6 | public class FemaleFactory implements AbstractFactory { 7 | 8 | public Human getPerson(int age) { 9 | if (age <= KidGirl.MAX_AGE) { 10 | return new KidGirl(); 11 | } 12 | else if (age <= TeenGirl.MAX_AGE && age > KidGirl.MAX_AGE) { 13 | return new TeenGirl(); 14 | } 15 | else { 16 | return new Woman(); 17 | } 18 | } 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/female/KidGirl.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.female; 2 | 3 | import com.javarush.test.level37.lesson04.big01.Human; 4 | 5 | public class KidGirl implements Human { 6 | 7 | public static final int MAX_AGE = 12; 8 | 9 | @Override 10 | public String toString() { 11 | return "KidGirl{}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/female/TeenGirl.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.female; 2 | 3 | import com.javarush.test.level37.lesson04.big01.Human; 4 | 5 | public class TeenGirl implements Human{ 6 | 7 | public static final int MAX_AGE = 19; 8 | 9 | @Override 10 | public String toString() { 11 | return "TeenGirl{}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/female/Woman.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.female; 2 | 3 | import com.javarush.test.level37.lesson04.big01.Human; 4 | 5 | public class Woman implements Human{ 6 | 7 | @Override 8 | public String toString() { 9 | return "Woman{}"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/male/KidBoy.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.male; 2 | 3 | 4 | import com.javarush.test.level37.lesson04.big01.Human; 5 | 6 | public class KidBoy implements Human { 7 | 8 | public static final int MAX_AGE = 12; 9 | 10 | 11 | @Override 12 | public String toString() { 13 | return "KidBoy{}"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/male/MaleFactory.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.male; 2 | 3 | import com.javarush.test.level37.lesson04.big01.AbstractFactory; 4 | import com.javarush.test.level37.lesson04.big01.Human; 5 | 6 | public class MaleFactory implements AbstractFactory { 7 | 8 | public Human getPerson(int age) { 9 | 10 | if (age <= KidBoy.MAX_AGE) { 11 | return new KidBoy(); 12 | } 13 | else if (age <= TeenBoy.MAX_AGE && age > KidBoy.MAX_AGE) { 14 | return new TeenBoy(); 15 | } 16 | else { 17 | return new Man(); 18 | } 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/male/Man.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.male; 2 | 3 | 4 | import com.javarush.test.level37.lesson04.big01.Human; 5 | 6 | public class Man implements Human { 7 | 8 | 9 | @Override 10 | public String toString() { 11 | return "Man{}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson04/big01/male/TeenBoy.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson04.big01.male; 2 | 3 | 4 | import com.javarush.test.level37.lesson04.big01.Human; 5 | 6 | public class TeenBoy implements Human { 7 | 8 | public static final int MAX_AGE = 19; 9 | 10 | 11 | @Override 12 | public String toString() { 13 | return "TeenBoy{}"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson06/task01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson06.task01; 2 | 3 | import java.util.concurrent.ConcurrentSkipListMap; 4 | 5 | /* Найти класс по описанию 6 | 1. Реализует интерфейс Map 7 | 2. Используется при работе с трэдами 8 | 3. Неблокирущая версия списка с пропусками, который адаптирован для хеш-таблицы. 9 | Про список с пропусками читать в дополнительном материале к этой лекци 10 | */ 11 | public class Solution { 12 | public static void main(String[] args) { 13 | System.out.println(getExpectedClass()); 14 | } 15 | 16 | public static Class getExpectedClass() { 17 | 18 | Class c = ConcurrentSkipListMap.class; 19 | 20 | return c; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/javarush/test/level37/lesson10/big01/HashMapReflectionHelper.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level37.lesson10.big01; 2 | 3 | import java.lang.reflect.InvocationTargetException; 4 | import java.lang.reflect.Method; 5 | import java.util.HashMap; 6 | 7 | public class HashMapReflectionHelper { 8 | public static T callHiddenMethod(HashMap map, String methodName) { 9 | try { 10 | Method method = map.getClass().getDeclaredMethod(methodName); 11 | method.setAccessible(true); 12 | return (T) method.invoke(map); 13 | } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) { 14 | } 15 | return null; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson04/home01/NameChecker.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson04.home01; 2 | 3 | public class NameChecker { 4 | private static final int MAX_NUMBER_OF_CHARACTERS = 100500; 5 | public static int getNumberOfCharacters(String name) throws Exception { 6 | if (name == null) 7 | throw new NameIsNullException(); 8 | else if (name.isEmpty()) 9 | throw new NameIsEmptyException(); 10 | 11 | int length = name.length(); 12 | if (length > MAX_NUMBER_OF_CHARACTERS) 13 | throw new Exception("Слишком длинное имя"); 14 | return length; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson04/home01/NameIsEmptyException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson04.home01; 2 | 3 | public class NameIsEmptyException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson04/home01/NameIsNullException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson04.home01; 2 | 3 | public class NameIsNullException extends Exception{ 4 | } 5 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson04/task01/VeryComplexClass.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson04.task01; 2 | 3 | /* Проверяемые исключения (checked exception) 4 | Напиши реализацию метода veryComplexMethod(). 5 | Он должен всегда кидать какое-нибудь проверяемое исключение. 6 | Кинуть исключение (throw) явно нельзя. 7 | */ 8 | 9 | 10 | import java.io.*; 11 | 12 | public class VeryComplexClass { 13 | public void veryComplexMethod() throws FileNotFoundException { 14 | FileReader fileReader = new FileReader("c:\\temp\\11111.txt"); 15 | 16 | } 17 | 18 | } 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home01/ExceptionApplicationMessage.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home01; 2 | 3 | public enum ExceptionApplicationMessage { 4 | UNHANDLED_EXCEPTION, 5 | SOCKET_IS_CLOSED 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home01/ExceptionDBMessage.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home01; 2 | 3 | public enum ExceptionDBMessage { 4 | NOT_ENOUGH_CONNECTIONS, 5 | RESULT_HAS_NOT_GOTTEN_BECAUSE_OF_TIMEOUT 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home01/ExceptionUserMessage.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home01; 2 | 3 | public enum ExceptionUserMessage { 4 | USER_DOES_NOT_EXIST, 5 | USER_DOES_NOT_HAVE_PERMISSIONS 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home02/Connection.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home02; 2 | 3 | public interface Connection { 4 | void connect() throws WrongDataException, ConnectionException; 5 | void write(Object data) throws WrongDataException, ConnectionException; 6 | Object read() throws WrongDataException, ConnectionException; 7 | void disconnect() throws WrongDataException, ConnectionException; 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home02/ConnectionException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home02; 2 | 3 | public class ConnectionException extends Exception { 4 | public ConnectionException() { 5 | super(); 6 | } 7 | public ConnectionException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home02/ConnectionMock.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home02; 2 | 3 | public class ConnectionMock implements Connection { 4 | @Override 5 | public void connect() throws WrongDataException, ConnectionException { 6 | } 7 | 8 | @Override 9 | public void write(Object data) throws WrongDataException, ConnectionException { 10 | } 11 | 12 | @Override 13 | public Object read() throws WrongDataException, ConnectionException { 14 | return null; 15 | } 16 | 17 | @Override 18 | public void disconnect() throws WrongDataException, ConnectionException { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home02/SolutionException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home02; 2 | 3 | public class SolutionException extends Exception { 4 | public SolutionException() { 5 | super(); 6 | } 7 | public SolutionException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson06/home02/WrongDataException.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson06.home02; 2 | 3 | public class WrongDataException extends Exception { 4 | public WrongDataException() { 5 | super(); 6 | } 7 | public WrongDataException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home01/IncorrectAccount.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home01; 2 | 3 | public class IncorrectAccount { 4 | @LongPositive 5 | private String amountString; 6 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home01/JavaRushBankAccount.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home01; 2 | 3 | public class JavaRushBankAccount { 4 | private String ownerName; 5 | 6 | @LongPositive 7 | private long amount; 8 | 9 | public JavaRushBankAccount(String ownerName) { 10 | this.ownerName = ownerName; 11 | } 12 | 13 | public long getAmount() { 14 | return amount; 15 | } 16 | 17 | public void setAmount(long amount) { 18 | this.amount = amount; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home01/LongPositive.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home01; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(value = ElementType.FIELD) 9 | @Retention(value = RetentionPolicy.RUNTIME) 10 | public @interface LongPositive { 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home02/Author.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home02; 2 | 3 | public @interface Author { 4 | String value() default ""; 5 | Position position() default Position.OTHER; 6 | } 7 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home02/Changelog.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home02; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Changelog { 8 | Revision[] value(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home02/Date.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home02; 2 | 3 | public @interface Date { 4 | int year(); 5 | int month(); 6 | int day(); 7 | int hour(); 8 | int minute(); 9 | int second(); 10 | } 11 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home02/Position.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home02; 2 | 3 | public enum Position { 4 | JUNIOR, 5 | MIDDLE, 6 | SENIOR, 7 | OTHER 8 | } 9 | -------------------------------------------------------------------------------- /src/com/javarush/test/level38/lesson10/home02/Revision.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level38.lesson10.home02; 2 | 3 | public @interface Revision { 4 | int revision(); 5 | Date date(); 6 | Author[] authors() default {}; 7 | String comment() default ""; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/com/javarush/test/level39/lesson09/big01/Event.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level39.lesson09.big01; 2 | 3 | public enum Event { 4 | LOGIN, 5 | DOWNLOAD_PLUGIN, 6 | WRITE_MESSAGE, 7 | SOLVE_TASK, 8 | DONE_TASK 9 | } -------------------------------------------------------------------------------- /src/com/javarush/test/level39/lesson09/big01/Solution.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level39.lesson09.big01; 2 | 3 | import java.nio.file.Paths; 4 | import java.util.Date; 5 | 6 | public class Solution { 7 | public static void main(String[] args) { 8 | LogParser logParser = new LogParser(Paths.get("c:/logs/")); 9 | System.out.println(logParser.getNumberOfUniqueIPs(null, new Date())); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/javarush/test/level39/lesson09/big01/Status.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level39.lesson09.big01; 2 | 3 | public enum Status { 4 | OK, 5 | FAILED, 6 | ERROR 7 | } 8 | -------------------------------------------------------------------------------- /src/com/javarush/test/level39/lesson09/big01/query/IPQuery.java: -------------------------------------------------------------------------------- 1 | package com.javarush.test.level39.lesson09.big01.query; 2 | 3 | import com.javarush.test.level39.lesson09.big01.Event; 4 | import com.javarush.test.level39.lesson09.big01.Status; 5 | 6 | import java.util.Date; 7 | import java.util.Set; 8 | 9 | public interface IPQuery { 10 | int getNumberOfUniqueIPs(Date after, Date before); 11 | Set getUniqueIPs(Date after, Date before); 12 | Set getIPsForUser(String user, Date after, Date before); 13 | Set getIPsForEvent(Event event, Date after, Date before); 14 | Set getIPsForStatus(Status status, Date after, Date before); 15 | } 16 | -------------------------------------------------------------------------------- /src/libs/activation-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/activation-1.1.jar -------------------------------------------------------------------------------- /src/libs/commons-codec-1.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/commons-codec-1.9.jar -------------------------------------------------------------------------------- /src/libs/commons-collections4-4.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/commons-collections4-4.1.jar -------------------------------------------------------------------------------- /src/libs/commons-logging-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/commons-logging-1.2.jar -------------------------------------------------------------------------------- /src/libs/core-1.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/core-1.0.3.jar -------------------------------------------------------------------------------- /src/libs/guava-18.0-extended-1.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/guava-18.0-extended-1.0.3.jar -------------------------------------------------------------------------------- /src/libs/guava-18.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/guava-18.0.jar -------------------------------------------------------------------------------- /src/libs/hamcrest-core-1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/hamcrest-core-1.3.jar -------------------------------------------------------------------------------- /src/libs/httpclient-4.5.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/httpclient-4.5.1.jar -------------------------------------------------------------------------------- /src/libs/httpcore-4.4.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/httpcore-4.4.3.jar -------------------------------------------------------------------------------- /src/libs/jackson-annotations-2.6.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jackson-annotations-2.6.3.jar -------------------------------------------------------------------------------- /src/libs/jackson-core-2.6.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jackson-core-2.6.3.jar -------------------------------------------------------------------------------- /src/libs/jackson-databind-2.6.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jackson-databind-2.6.3.jar -------------------------------------------------------------------------------- /src/libs/jsoup-1.8.3-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jsoup-1.8.3-sources.jar -------------------------------------------------------------------------------- /src/libs/jsoup-1.8.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jsoup-1.8.3.jar -------------------------------------------------------------------------------- /src/libs/jsr305-3.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/jsr305-3.0.1.jar -------------------------------------------------------------------------------- /src/libs/junit-4.12.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/junit-4.12.jar -------------------------------------------------------------------------------- /src/libs/mail-1.4.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/src/libs/mail-1.4.7.jar -------------------------------------------------------------------------------- /test1.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 4 3 | 5 4 | 6 5 | 7 6 | 8 7 | exit -------------------------------------------------------------------------------- /test1.txt.txt: -------------------------------------------------------------------------------- 1 | --BEGIN TEST TEXT FILE-- 2 | 1 3 | 2 4 | 3 5 | 41- 6 | 04343 7 | ds1 8 | ds-43 9 | true 10 | false 11 | text line 12 | 29 13 | 2---98 14 | 98 15 | 16 | 3200\32 17 | 4344 18 | 1 19 | 2324 20 | --END TEST TEXT FILE-- -------------------------------------------------------------------------------- /your.file.name: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyomakr/JavaRushHomeWork/07f416b2738fd54a82f3a3852c9db35a3ff57c93/your.file.name --------------------------------------------------------------------------------