Consider the following definition of class Person: 1 public class Person 2 { 3 public final String name; 4 5 public Person(String name) 6 { 7 if (name == null) this.name = ""; //No null names... 8 else this.name = name; 9 } 10 } and the definition of class PersonListUtils implemented by a student... 1 public class PersonListUtils 2 { 3 //Replaces the first occurrence of a Person in the list with the given oldPersonName with a new Person having the newPersonName. 4 //Returns true if the substitution is successful, false otherwise 5 public static boolean substitute(ArrayList list, String oldPersonName, String newPersonName) 6 { 7 for (Person person: list) { 8 if (person.name == oldPersonName) { 9 person = new Person(newPersonName); 10 return true; 11 } 12 } 13 return false; 14 } 15 16 //Removes from the list the first occurrence of a Person with the given nameToRemove. 17 //Returns true if the deletion is successful, false otherwise 18 public static boolean remove(ArrayList list, String nameToRemove) 19 { 20 for (Person element: list) { 21 if (element.name == nameToRemove) { 22 return list.remove(element); 23 } 24 } 25 return false; 26 } 27 } Identify, characterize (i.e, determine if it is functional, compile-time, or run-time) and explain any errors you find in the definition of the class PersonListUtils (ignore the static keyword).

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter11: Inheritance And Composition
Section: Chapter Questions
Problem 9SA
icon
Related questions
Question

Consider the following definition of class Person:

1 public class Person

2 {

3 public final String name;

4

5 public Person(String name)

6 {

7 if (name == null) this.name = "<NoName>"; //No null names...

8 else this.name = name;

9 }

10 }

and the definition of class PersonListUtils implemented by a student...

1 public class PersonListUtils

2 {

3 //Replaces the first occurrence of a Person in the list with the given

oldPersonName with a new Person having the newPersonName.

4 //Returns true if the substitution is successful, false otherwise

5 public static boolean substitute(ArrayList<Person> list, String

oldPersonName, String newPersonName)

6 {

7 for (Person person: list) {

8 if (person.name == oldPersonName) {

9 person = new Person(newPersonName);

10 return true;

11 }

12 }

13 return false;

14 }

15

16 //Removes from the list the first occurrence of a Person with the given

nameToRemove.

17 //Returns true if the deletion is successful, false otherwise

18 public static boolean remove(ArrayList<Person> list, String nameToRemove)

19 {

20 for (Person element: list) {

21 if (element.name == nameToRemove) {

22 return list.remove(element);

23 }

24 }

25 return false;

26 }

27 }

Identify, characterize (i.e, determine if it is functional, compile-time, or run-time) and explain any errors you find

in the definition of the class PersonListUtils (ignore the static keyword).

 

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Reference Types in Function
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning