1. 下列说法正确的有
    A. 类中的构造方法不可省略
    B. 若一个类中定义了有参构造方法,没有定义无参构造方法,此时类中默认有无参构造方法。
    C. 构造方法在一个对象创建过程中执行,用户进行初始化
    D.一个类只能定义一个构造方法

2.下列Java代码运行的结果是
public class Test {
public static void main(String[] args) {
Aoo[] aoo = new Aoo[2];
System.out.println(aoo[0]);
}
}
class Aoo{
int x;
int y;
public Aoo(int x, int y) {
this.x = x;
this.y = y;
}
}
A.0 B.null C.编译错误 D.运行异常

3.在Java中,下面代码段的运行结果是
public class Test {
public static void main(String[] args) {
Aoo aoo = new Aoo(5);
}
}
class Aoo{
public Aoo() {
System.out.println(“无参”);
}
public Aoo(int num){
this();
System.out.println(“有参”);
}
}
A.无参 B.有参 C.无参 有参 D.有参 无参

  1. 程序执行的结果是
    public class Test {
    String name=“Tom”;
    public Test(String name){
    this.name=name;
    }
    public static void main(String [] args){
    Test t = new Test(“Jack”);
    System.out.println(t.name);
    }
    }
    A. null B. Tom C. Jack D. " "

5.下面Java代码的运行结果是
class Penguin {
private String name=null; // 名字
private int health=0; // 健康值
private String sex=null; // 性别
public void Penguin() {
health = 10;
sex = “雄”;
System.out.println(“执行方法。”);
}
public void print() {
System.out.println(“企鹅的名字是”
+ name + “,健康值是” + health + “,性别” + sex+ “。”);
}
public static void main(String[] args) {
Penguin pgn = new Penguin();
pgn.print();
}
}
A. 企鹅的名字是null,健康值是10,性别是雄。
B. 执行方法。企鹅的名字是null,健康值是0,性别是null。
C. 企鹅的名字是null,健康值是0,性别是null。
D. 执行方法。企鹅的名字是null,健康值是10,性别是雄。

6.下列选项中关于Java中封装的说法错误的是
A. 封装是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值、getter方法用于取值
D. 类的属性必须进行封装,否则无法通过编译

7.在Java中,以下程序编译运行后的输出结果为
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.print(pt1.x + pt2.x);
} }
A. 6 B. 3 4 C. 8 D. 7

判断题
1.构造方法不能重载。X
2.普通方法可以与类同名。√
3.this关键字必须放在构造方法第一行。X

简答题
1.什么是类?什么是对象?简述二者之间的关系

  • 类:类简单说即分类,是对具有相同属性和行为的多个对象共性的**抽象描述,在Java语言中的体现为一种引用数据类型,里面包含了描述对象的属性和行为,即成员变量和成员方法,每一个对象都归属于一类。 类是构建对象的模板,对象的数据结构由定义它的类来决定。对象是类的实例。

  • 对象:对象主要指现实生活中客观存在的实体,在Java语言中对象体现为内存空间中的一块存储区域(堆区)

2.什么是构造方法?语法有什么要求?什么时候调用?作用是什么?

  • (1)构造方法:构造方法又叫构造器,构造函数,方法名与类同名,没有返回值类型,连void都没有的方法称作构造方法。

  • (2)语法格式:修饰符 类名(形参列表){方法体;},
    若类中没有显示声明无参构造方法,则系统(JVM )提供默认的无参构造方法,又叫缺省构造方法/默认构造方法。
    若类中显示声明有参构造方法,则系统不再提供默认无参构造方法,此时为避免创建对象时调用无参构造方法造成编译错误。通常都要显示声明无参构造方法。

  • (3)创建对象时调用

  • (4)作用:使用new关键字创建对象时自动调用构造方法为成员变量初始化操作

3.什么是代码块?构造代码块和局部代码块的区别是什么?

  • 代码块:用一对{}括起来的代码称为代码块。

  • 构造代码:声明在类中方法外的代码块。用于在调用构造方法之前需要准备的代码。例如统一初始化成员属性。

  • 局部代码块:声明在方法里的代码块,用于限制变量的作用域。

4.this关键字的用法和作用

  • this指代当前对象的引用。

  • 用法:在类的方法中通过this. 方法名 和 this.属性 来调用类的结构。
    在类的构造器中 可以通过this([参数列表])来调用类的其他构造方法.

  • 作用:使用this 关键字来区别成员变量和局部变量。

5.请根据如下相关Emp及Test类的代码画图对应的内存管理图并写出运行结果
class Emp {
public int age;
}
public class Test {
public static void change(Emp emp){
emp.age = 50;
emp = new Emp();
emp.age=100; }
public static void main(String[] args) {
Emp emp = new Emp();
emp.age = 100;
System.out.println(emp.age); 100
change(emp);
System.out.println(emp.age);50
}
}
输出结果为:

编程题
1.定义一个教师(Teacher)类,设置特征和功能
特征:姓名name、年龄age、住址address
功能:吃饭eat、睡觉sleep、讲课teach
在测试类的main方法中创建教师类对象,调用其功能,
通过方法给它初始化成员变量的值,并打印出来。

package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc* 1.定义一个教师(Teacher)类,设置特征和功能* 特征:姓名name、年龄age、住址address* 功能:吃饭eat、睡觉sleep、讲课teach* 在测试类的main方法中创建教师类对象,调用其功能,* 通过方法给它初始化成员变量的值,并打印出来。*/
public class Teacher {// 声明Teacher特征:姓名name、年龄age、住址addressprivate String name;private int age;private String address;//声明无参构造public Teacher(){}//声明有参构造public Teacher(String name,int age,String address){//调用setXXX方法初始化成员变量setName(name);setAge(age);setAddress(address);}//提供公有的setXXX()方法设置属性。而不直接调用属性修改,提高了代码的安全性。public void setName(String name){this.name = name;}//提供公有的getXXX方法获取成员属性public String getName(){return name;}public void setAge(int age){this.age = age;}public int getAge(){return age;}public void setAddress(String address){this.address = address;}public String getAddress(){return address;}//功能:吃饭eatpublic void eat(){System.out.println(name + "在吃饭");}//功能:睡觉sleeppublic void sleep(){System.out.println(name + "在睡觉");}//功能:讲课teachpublic void teach(){System.out.println( name + "老师在讲课");}public void show(){System.out.println(name + "\t年龄: "+ age + "\t住址:" + address);}
}
package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc* 在测试类的main方法中创建教师类对象,调用其功能,*  * 通过方法给它初始化成员变量的值,并打印出来。*/
public class TeacherTest {public static void main(String[] args) {//1、声明Teacher 类对象并初始化Teacher mathTeacher = new Teacher("江琳",18,"黑龙江");//通过对象.方法名() 展示该对象的具体信息mathTeacher.show();mathTeacher.eat();mathTeacher.sleep();System.out.println(mathTeacher.getAge());//修改mathTeacher对象的年龄mathTeacher.setAge(24);//修改mathTeacher对象的住址mathTeacher.setAddress("哈尔滨");}
}

2.定义一个交通工具(Vehicle)的类,其中有:
⦁ 属性:速度(speed),体积(size)等
⦁ 方法:移动(move()),设置速度(setSpeed(int speed)),
设置体积(setSize(int size))加速speedUp(),减速speedDown()等
在测试类Vehicle中的main()中实例化一个交通工具对象,
通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,
减速的方法对速度进行改变。

package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc* 2.定义一个交通工具(Vehicle)的类,其中有:* ⦁ 属性:速度(speed),体积(size)等* ⦁ 方法:移动(move()),设置速度(setSpeed(int speed)),* 设置体积(setSize(int size))加速speedUp(),减速speedDown()等* 在测试类Vehicle中的main()中实例化一个交通工具对象,* 通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,* 减速的方法对速度进行改变。*/
public class Vihicle {private double speed;private double size;//提供无参构造public Vihicle() {}//声明有参构造public Vihicle(double speed, double size) {this.speed = speed;this.size = size;}//声明公有的get/set方法public double getSpeed() {return speed;}public void setSpeed(double speed) {this.speed = speed;}public double getSize() {return size;}public void setSize(double size) {this.size = size;}/**  方法:移动(move()),设置速度(setSpeed(int speed)),* 设置体积(setSize(int size))加速speedUp(),减速speedDown()等* */public void move(){System.out.println("以每小时" + getSpeed() +"速度移动!");}public void speedUp(double speed){this.speed += speed;System.out.println("加速后速度为: " + getSpeed());}public void speedDown(double speed){this.speed -= speed;System.out.println("减速后速度为: " + getSpeed());}public void show(){System.out.println("速度为 " + speed + " ,体积为 " + size);}
}
package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc*  在测试类Vehicle中的main()中实例化一个交通工具对象,*  * 通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,*  * 减速的方法对速度进行改变。*/
public class VihicleTest {public static void main(String[] args) {Vihicle vihicle1 = new Vihicle(60,15);vihicle1.show();//通过对象名.属性,对象名.方法()调用Vihicle类的 结构,设置相关属性和行为vihicle1.speedDown(10);vihicle1.speedUp(20);}
}

3.定义一个圆类——Circle,在类的内部提供一个属性:半径 r,
同时提供两个方法:计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。
通过两个方法计算圆的周长和面积,并且对计算结果进行输出。
在测试类中对 Circle 类进行使用。

package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc* 3.定义一个圆类——Circle,在类的内部提供一个属性:半径 r,* 同时提供两个方法:计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。*  通过两个方法计算圆的周长和面积,并且对计算结果进行输出。* 在测试类中对 Circle 类进行使用。*/
public class Circle {private double r;//无参构造public Circle() {}//有参构造public Circle(double r) {this.r = r;}public double getR() {return r;}public void setR(double r) {this.r = r;}/** 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。*  通过两个方法计算圆的周长和面积,并且对计算结果进行输出。* */public void getArea(){//定义一个变量用于存储面积double area = Math.PI * r * r;//乘以1000 获取原千分位上的数area *= 1000;//50265.48245743669// 对10 取余得到个位数,即原千分位,判断千分位是否大于等于5if (area % 10 >= 5){// 5//大于则 + 10,向百分位进 1area += 10;//50275.48245743669}//area / 10 去掉千分位的数。转成int 再除以 100.0这一步控制小数点后保留两位数area = (int) (area / 10) / 100.0;System.out.println("半径为:" + r + "的圆的面积为:"+ area);}public void getPerimeter(){//定义一个变量用于存储周长double perimeter = Math.PI * 2 * r;//乘以1000 获取原千分位上的数perimeter *= 1000;//// 对10 取余得到个位数,即原千分位,判断千分位是否大于等于5if (perimeter % 10 >= 5){// 5//大于则 + 10,向百分位进 1perimeter += 10;//}//perimeter / 10 去掉千分位的数。转成int 再除以 100.0这一步控制小数点后保留两位数perimeter = (int) (perimeter / 10) / 100.0;//输出周长System.out.println("半径为:" + r + "的圆的周长为:"+ perimeter);}
}
package JAVA_OOP.com.huacit.day01.Excise;/*** @author yyc* 在测试类中对 Circle 类进行使用。*/
public class CircleTest {public static void main(String[] args) {Circle circle1 = new Circle(4);circle1.getArea();circle1.getPerimeter();}
}

最新文章

  1. js中对变量初始化的重要性
  2. 产品经理经验谈:从产品经理、用户、产品的角度重新认知产品运营
  3. 系列(九)—TCP/UDP协议
  4. leetcode 202. Happy Number
  5. Light bulbs(上海icpc网络预选赛,差分离散化)
  6. 经常使用计算机的孩子,常玩电脑对孩子负面影响大,家长们不容小觑!
  7. 打开eclipse出现Failed to load the JNI shared library “D:\java\jdk\bin\...\jre\bin\server\jvm.dll”如何解决?
  8. 国服服务器_伊丁天堂国服|服务器类型建议收集
  9. linux安装redis 和 使用
  10. Hashcat密码破解
  11. 阿里云文本反垃圾检测接口调用
  12. removeclass 传入两个类_jQuery源码解读之removeClass()方法分析
  13. JavaScript中事件的绑定与解绑
  14. quartus 13.0 网络盛传的破解方法勘误(网传大多数破解步骤有误)
  15. html以自己的学号命名站点,实验6.1创建站点并掌握编辑网页的基本操作.docx
  16. 云宏广东省中医院虚拟化管理平台
  17. java生成word(报告报表)含统计图表图片、循环表格,Spring Boot整合word生成
  18. 如何安装cygwin
  19. free Code Camp Slasher Flick(截断数组)
  20. VGA系列之一:VGA显示器驱动篇

热门文章

  1. Windows 无法打开“添加打印机”本地打印后台处理程序服务没有运行。请重新启动打印后台处理程序
  2. 拼小圈营销群_拼多多拼小圈引流卖货全攻略
  3. echart 设置折线红色警戒线
  4. 2、进入缓冲区(缓存)的世界,破解一切与输入输出有关的疑难杂症(转载自C语言中文网,仅作学习笔记)
  5. 重读Ardupilot中stabilize model+MAVLINK解包过程
  6. 举个栗子!Tableau 技巧(145):实现行级的子类别扩展
  7. keep be curious
  8. 平年和闰年c语言程序,C语言平年,平年闰年问题
  9. 火车头采集器使用‘导入数据库’形式发布数据到帝国CMS数据库的过程(原创)适用于ECMS7.2
  10. 空中旋球计算机控制系统,自动乒乓球发球机设计及其控制系统的研究