企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 一、初识面向对象 ### 2.1 类和对象 ### 2.2 类的创建 ### 2.3 实例对象 ### 【练习】 * 有关 Java 中的类和对象,以下说法错误的是()(选择一项) ``` A. 同一类的所有对象都拥有相同的特征和行为 B. 类和对象一样,只是说法不同 C. 对象是具有属性和行为的实体 D. 类规定了对象拥有的特征和行为 ``` * 在 Java 中,以下程序的运行结果是()(选择一项) ``` public class Person { String name; public static void main(String[] args) { Person person = new Person(); System.out.println(person.name); } } ``` ``` A 输出:null B 正常运行,但不会输出任何内容 C 编译出错,不能运行 D 能运行,但运行时会出现异常 ``` ### 2.4 单一指责原则 ### 2.5 new 关键字 ### 【练习】 * 下面代码运行的正确结果是()(选择一项) ``` class Phone { String message; } public class PhoneTest { public static void main(String[] args) { Phone p1 = new Phone(); p1.message = "hello"; Phone p2 = p1; p2.message = "world"; System.out.println(p1.message); } } ``` ``` A 编译错误,无法正常运行 B 编译正确,但运行时产生错误 C hello D world ``` * ()空间用于存储使用new关键字所创建的对象(选择一项) ``` A 堆 B 栈 C 方法区 D 实例区 ``` * 编写自定义 Person 类,根据提示以及效果补全代码。程序运行参考效果图如下: ``` 我是一名学生! 我是一个男孩! 我叫李明,今年10岁了,读小学五年级了。 ``` ``` public class Test { public static void main(String[] args) { // 使用 new 关键字实例化对象 // 传入name、age、grade的参数值 // 分别调用 student、sex、mySelf 方法 } } public class Person { // 属性:name、age、grade // 创建无参无返回值的student方法,描述为:我是一名学生! // 创建带参(性别sex)的sex方法,描述为:我是一个**孩! // 创建无参无返回值的mySelf方法,分别介绍姓名(name),年龄(age),年级(grade) } ``` ## 二、构造方法 ### 2.1 无参构造方法 ### 2.2 带参构造方法 ### 【练习】 * 分析下面的 Java 代码,编译运行结果是()(选择一项) ``` public class Test { int number; String strname; Test (int num, String name) { number = num; strname = name; System.out.println("学号:" + num + " 姓名:" + name); } public static void main (String[] args) { Test obj1 = new Test(); Test obj2 = new Test(1, "张三"); } } ``` ``` A 运行结果为:学号:1 姓名:张三 B 运行结果为:学号:null 姓名:张三 C 程序出现编译错误 D 程序出现运行时异常 ``` * 下面的哪几项是合法的构造方法重载()(选择两项) ``` public class Diaplay { // ... } ``` ``` A public Display(String s) {} B public int display(int n1, int n2) {} C Display(int ...a) {} D public display(String s, int a) {} ``` * 下列代码的运行结果为() ``` public class User { String mainboard, cpu; public User(String s1, String s2) { mainboard = s1; cpu = s2; } public static void main(String[] args) { User c = new User("华硕", "Intel"); System.out.println("mainboard:" + c.mainboard + ", cpu:" + c.cpu); } } ``` ### 2.3 this 关键字 ### 【练习】 * 以下程序编译运行后的输出结果为() ``` public class Test { int x, y; Test (int x, int y) { this.x = x; this.y = y; } public static void main(String[] args) { Test pt1, pt2; pt1 = new Test(3, 3); pt2 = new Test(4, 4); System.out.println(pt1,x + pt2.x); } } ``` ### 2.4 构造方法调用 ### 【练习】 * 下列关于 this说法错误的选项是()(选择两项) ``` A 在构造方法中如果使用 this 调用其他构造方法,只能是第一条语句 B 不能在构造方法中调用同一个类的其他构造方法 C 在构造方法中如果使用 this 调用其他构造方法,语句可以放在任意位置 D 可以使用 this.方法名() 或者 this.属性名来引用当前对象的成员 ``` * 编写自定义猴子类,按照效果图,在编辑器中对应空白区域编写代码。 ``` 我是使用无参构造产生的猴子: 名称:长尾猴 特征:尾巴长 我是使用带参构造产生的猴子: 名称:白头叶猴 特征:头上有白毛,喜欢吃树叶 ``` ``` public class Test { public static void main(String[] args) { // 调用无参构造方法实例对象 // 打印输出对象属性 // 调用带参构造方法实例对象 // 打印输出对象属性 } } public class Monkey { // 属性:姓名(name)、特征(feature) // 无参的构造方法(默认初始化name和feature的属性值,属性值参考效果图) // 带参的构造方法(接收外部传入的参数,分别向 name 和 feature 赋值) } ```