Примітивні (value) та ссилочні (reference) типи даних



Скачати 61.69 Kb.
Дата конвертації16.03.2019
Розмір61.69 Kb.
Назва файлуlab1.doc

Міністерство освіти і науки України

Вінницький національний технічний університет

Факультет інформаційних технологій та комп’ютерної інженерії

Кафедра ПЗ

Звіт

з лабораторної роботи №1
«Консольні проекти. Оголошення класів.
Створення об’єктів. Конструктори

Примітивні (value) та ссилочні (reference) типи даних»


з дисципліни

Об’єктно орієнтоване програмування
Виконав:

студент 1 курсу, групи 3ПІ-18б



Веренько Артем Ігорович

Викладач: Круподьорова Л.М.



Задача. Навчитись створювати класи та об’єкти. Навчитись використовувати конструктори. Навчитись використовувати консольне введення-виведення.Розглянути відмінності примітивних (value) та ссилочних (reference) типів даних.

Код класа Main

package com.company;
import java.util.Scanner;
public class Main {
public static Heroes heroes = new Heroes("Роланд", "Діскейн", "Гіліад", 55, 180.2);
public static Heroes heroes1 = new Heroes("Джейк", "Чеймберс", "Нью Йорк", 11, 180.2);
public static void main(String[] args) {
Main program = new Main();
System.out.println("Початок роботи" + "\n");
Scanner sca = new Scanner(System.in);
Scanner sca1 = new Scanner(System.in);
Heroes heroes2 = new Heroes();
boolean temp = true;
while (temp) {
System.out.println("Вітаю у середземному світі!" + "\n" +
"1) Вивести інформацію про першого персонажа" + "\n" +
"2) Вивести інформацію про другого персонажа" + "\n" +
"3) Запустити гру ТИР" + "\n" +
"4) Ініціалізувати ворога" + "\n" +
"5) Вивести інформацію про ворога" + "\n" +
"6) Бій з першим героєм" + "\n" +
"7) Бій з другим героєм" + "\n" +
"8) Випадкова фраза" + "\n" +
"0) Вихід");
int nam = sca1.nextInt();
switch (nam) {
case 0:
temp = false;
break;
default:
continue;
case 1:
heroes.print();
break;
case 2:
heroes1.print();
break;
case 3:
heroes1.shoting();
break;
case 4:
System.out.println("Створення противника! ");
System.out.println("Введіть ім'я: ");
String name1 = sca.nextLine();
heroes2.setName(name1);
System.out.println("Введіть фамілію: ");
String surname1 = sca.nextLine();
heroes2.setSurname(surname1);
System.out.println("Введіть місце народження: ");
String city_name1 = sca.nextLine();
heroes2.setCity_name(city_name1);
System.out.println("Введіть теперішній вік: ");
int age1 = sca.nextInt();
System.out.println("Введіть силу персонажа: ");
double power1 = sca.nextDouble();
heroes2.SetHeight(power1);
break;
case 5:
heroes2.print();
break;
case 6:
heroes.fight(heroes2);;
break;
case 7:
heroes1.fight(heroes2);;
break;
case 8:
heroes1.print1();
break;
}
}
System.out.println("Finish program...");
}}

Код класа Heroes

package com.company;

import java.util.Random;

import java.util.Scanner;

public class Heroes {

// Variables

protected String name;

protected String surname;

protected String city_name;

protected int age;

protected double power;

public void setName(String userName){

name = userName;

}

public String getName(){



return name;

}

public void setSurname(String userSurname){



surname = userSurname;

}

public String getSurname(){



return surname;

}

public void setCity_name(String userCity_name){



city_name = userCity_name;

}

public String getCity_name(){



return city_name;

}

public void setAge(int userAge){



age = userAge;

}

public int getAge(){



return age;

}

public void SetHeight(double userPower){



power = userPower;

}

public double getPower(){



return power;

}

// Constructors



Heroes (String name, String surname, String city_name, int age, double power) {

System.out.println("Конструктор було викликано" + "\n");

this.name = (name == null || name.trim().isEmpty()) ? "Невідомий герой" : name;

this.surname = (surname == null || surname.trim().isEmpty()) ? "..." : surname;

this.city_name = (city_name == null || city_name.trim().isEmpty()) ? "Невідомо" : city_name;

this.age = age;

this.power = power;

if (name == null){}

else {

System.out.println("Новий персонаж!");



print(name, surname, city_name, age, power);}

}

Heroes(){



this(null, null, null, 0, 0.0d);

System.out.println("Було викликано конструктор по замовчуванню" + "\n");

System.out.println("Новий персонаж!");

print();


}

// Methods

Random rand =new Random();

String replicas[] = new String[]

{

"Хайл",


"За Гилиад!",

"Вперед. За башню!",

"Мир во мраке",

"Пленных не брать",

"Ты забыл лик своего отца",

"Тьма уже давно повсюду",

"Сны обманчивы",

"Могилы роют победители",

"Мы все жывем ради сказок"

};

public void print(String name, String surname, String city_name, int age, double power) {



System.out.println("Ім'я: " + name + "\n" +

"Фамілія: " + surname + "\n" +

"Походження: " + city_name + "\n" +

"Вік: " + age + "\n" +

"Сила: " + power + "\n"

);

}



public void print() {

System.out.println("Ім'я: " + name + "\n" +

"Фамілія: " + surname + "\n" +

"Походження: " + city_name + "\n" +

"Вік: " + age + "\n" +

"Сила: " + power + "\n"

);

}

public void print1() {



System.out.println("Hi says: " +replicas[rand.nextInt(10)]);

}

public void shoting(){



int ggg = rand.nextInt(10);

System.out.println("Ви запустили гру TИР" + "\n" +

"Правила" + "\n" +

"Потрібно ввести цифру від 1 до 9." + "\n" +

"Якщо влучиш - отримаєш відповідне повідомлення" + "\n" +

"Якщо ні - завжди можеш спробувати щераз" + "\n");

System.out.println("Введіть число: ");

Scanner sca1 = new Scanner(System.in);

int age2 = sca1.nextInt();

if (ggg == age2){

System.out.println("Влучив!" + "\n");

}

else {



System.out.println("Можливо іншим разом!" + "\n");

}

}



public void fight(Heroes sechero) {

if(this.getPower() > sechero.getPower()) {

System.out.println(this.getName() + " " + this.getSurname() + " виграв!");

} else if(this.getPower() < sechero.getPower()) {

System.out.println(sechero.getName() + " " + sechero.getSurname() + " виграв!");

} else {


System.out.println("Нічия!");

}

}



}

Тестування роботи програми

"C:\Program Files\Java\jdk-11.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.3\lib\idea_rt.jar=63769:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\LEGOLAS\IdeaProjects\TheDarkTower\out\production\The_Dark_Tower com.company.Main

Конструктор було викликано

Новий персонаж!

Ім'я: Роланд

Фамілія: Діскейн

Походження: Гіліад

Вік: 55

Сила: 180.2



Конструктор було викликано

Новий персонаж!

Ім'я: Джейк

Фамілія: Чеймберс

Походження: Нью Йорк

Вік: 11


Сила: 180.2

Початок роботи

Конструктор було викликано

Було викликано конструктор по замовчуванню

Новий персонаж!

Ім'я: Невідомий герой

Фамілія: ...

Походження: Невідомо

Вік: 0

Сила: 0.0



Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

2) Вивести інформацію про другого персонажа

3) Запустити гру ТИР

4) Ініціалізувати ворога

5) Вивести інформацію про ворога

6) Бій з першим героєм

7) Бій з другим героєм

8) Випадкова фраза

0) Вихід


1

Ім'я: Роланд

Фамілія: Діскейн

Походження: Гіліад

Вік: 55

Сила: 180.2



Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

0) Вихід


2

Ім'я: Джейк

Фамілія: Чеймберс

Походження: Нью Йорк

Вік: 11

Сила: 180.2



Вітаю у середземному світі!

  1. Вивести інформацію про першого персонажа

0) Вихід


3

Ви запустили гру TИР

Правила

Потрібно ввести цифру від 1 до 9.



Якщо влучиш - отримаєш відповідне повідомлення

Якщо ні - завжди можеш спробувати щераз

Введіть число:

5

Можливо іншим разом!



Вітаю у середземному світі!

  1. Вивести інформацію про першого персонажа

0) Вихід


4

Створення противника!

Введіть ім'я:

Річард


Введіть фамілію:

Келеген


Введіть місце народження:

США


Введіть теперішній вік:

47

Введіть силу персонажа:



500

Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

8) Випадкова фраза



0) Вихід

5

Ім'я: Річард



Фамілія: Келеген

Походження: США

Вік: 0

Сила: 500.0



Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

0) Вихід


6

Річард Келеген виграв!

Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

0) Вихід


7

Річард Келеген виграв!

Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

….

0) Вихід


8

Hi says: Могилы роют победители

Вітаю у середземному світі!

1) Вивести інформацію про першого персонажа

0) Вихід


0

Finish program...



Process finished with exit code 0

Висновок. Під час виконання лабораторної роботи№1 я навчився створювати класи та об’єкти. Навчився використовувати конструктори. Навчився використовувати консольне введення-виведення. Розглянув відмінності примітивних (value) та ссилочних (reference) типів даних.



Поділіться з Вашими друзьями:


База даних захищена авторським правом ©bezref.in.ua 2019
звернутися до адміністрації

    Головна сторінка