Слайд 2
![Ссылочные типы и объекты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-1.jpg)
Слайд 3
![Ссылочные переменные Class variable [= new Class ([param-list]) ];](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-2.jpg)
Ссылочные переменные
Class variable [= new Class ([param-list]) ];
Слайд 4
![Cоздание и использование объектов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-3.jpg)
Cоздание и использование объектов
Слайд 5
![Простой ссылочный тип class Employee { Employee(String name, int salary)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-4.jpg)
Простой ссылочный тип
class Employee {
Employee(String name, int salary) {
this.name
= name;
this.salary = salary;
}
public void raiseSalary(int byPercent) {
int raise = salary * byPercent / 100;
salary += raise;
}
int salary;
String name;
}
Слайд 6
![Создание объектов public class NewDemo { public static void main(String[]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-5.jpg)
Создание объектов
public class NewDemo {
public static void main(String[] args) {
Employee bob;
bob = new Employee("Robert", 20000);
Employee alice = new Employee("Alice", 10000);
System.out.println("Object employee: name = " + bob.name + ", salary = "
+ bob.salary);
System.out.println("Object employee: name = " + alice.name + ", salary = "
+ alice.salary);
}
}
Object employee: name = Robert, salary = 20000
Object employee: name = Alice, salary = 10000
Слайд 7
![Операторы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-6.jpg)
Слайд 8
![Операторы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-7.jpg)
Слайд 9
![Сравнение ссылок public class RefEqualityDemo { public static void main(String[]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-8.jpg)
Сравнение ссылок
public class RefEqualityDemo {
public static void main(String[] args) {
Employee bob = new Employee("Robert", 20000);
Employee robert = new Employee("Robert", 20000);
System.out
.println("Names and salaries are equal: "
+ ((robert.name.equals(bob.name)) && (robert.salary == bob.salary)));
System.out.println("References are equal: " + (robert == bob));
}
}
Names and salaries are equal: true
References are equal: false
Слайд 10
![Присваивание и сравнение ссылок public class AssignDemo { public static](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-9.jpg)
Присваивание и сравнение ссылок
public class AssignDemo {
public static void main(String[]
args) {
Employee bob = new Employee("Robert", 20000);
Employee robert = bob;
System.out
.println("Names and salaries are equal: "
+ ((robert.name.equals(bob.name)) && (robert.salary == bob.salary)));
System.out.println("References are equal: " + (robert == bob));
}
}
Names and salaries are equal: true
References are equal: true
Слайд 11
![Изменение значения используя другую ссылку](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-10.jpg)
Изменение значения используя другую ссылку
Слайд 12
![Изменение значения используя другую ссылку public class ChangeRefDemo { public](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-11.jpg)
Изменение значения используя другую ссылку
public class ChangeRefDemo {
public static void
main(String[] args) {
Employee bob = new Employee("Robert", 20000);
Employee robert = bob;
System.out.println("Object employee: name = " + bob.name + ", salary = "
+ bob.salary);
System.out.println("Doubling salary ...");
robert.raiseSalary(100);
System.out.println("Object employee: name = " + bob.name + ", salary = "
+ bob.salary);
}
}
Object employee: name = Robert, salary = 20000
Doubling salary ...
Object employee: name = Robert, salary = 40000
Слайд 13
![Cсылочные типы как параметры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-12.jpg)
Cсылочные типы как параметры
Слайд 14
![Передача по ссылке или по значению?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-13.jpg)
Передача по ссылке или по значению?
Слайд 15
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-14.jpg)
Слайд 16
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-15.jpg)
Слайд 17
![Изменение ссылки public class SwapDemo { public static void main(String[]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-16.jpg)
Изменение ссылки
public class SwapDemo {
public static void main(String[] args) {
Employee alice
= new Employee("Alice", 20000);
Employee bob = new Employee("Robert", 30000);
System.out.println("Employee Alice: name = " + alice.name + ", salary = " + alice.salary);
System.out.println("Employee Bob: name = " + bob.name + ", salary = " + bob.salary);
Employee temp = alice;
alice = bob;
bob = temp;
System.out.println("Employee Alice: name = " + alice.name + ", salary = " + alice.salary);
System.out.println("Employee Bob: name = " + bob.name + ", salary = " + bob.salary);
}
}
Employee Alice: name = Alice, salary = 20000
Employee Bob: name = Robert, salary = 30000
Employee Alice: name = Robert, salary = 30000
Employee Bob: name = Alice, salary = 20000
Слайд 18
![Передача ссылки по значению public class NoSwapDemo { public static](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/134244/slide-17.jpg)
Передача ссылки по значению
public class NoSwapDemo {
public static void main(String[]
args) {
Employee alice = new Employee("Alice", 20000);
Employee bob = new Employee("Robert", 30000);
System.out.println("Employee Alice: name = " + alice.name + ", salary = " + alice.salary);
System.out.println("Employee Bob: name = " + bob.name + ", salary = " + bob.salary);
swap(alice, bob);
System.out.println("Employee Alice: name = " + alice.name + ", salary = " + alice.salary);
System.out.println("Employee Bob: name = " + bob.name + ", salary = " + bob.salary);
}
public static void swap(Employee a, Employee b) {
Employee temp;
temp = a;
a = b;
b = temp;
}
}
Employee Alice: name = Alice, salary = 20000
Employee Bob: name = Robert, salary = 30000
Employee Alice: name = Alice, salary = 20000
Employee Bob: name = Robert, salary = 30000