Java封装与继承作业

文章目录

  1. 简述private关键字的特点?

1.可以修饰成员变量,也可以修饰成员方法,但是都只能在本类访问,外界类不能够访问
2.这些被私有修饰的成员变量,或者成员方法,可以间接通过公共方法来访问!
3.是一个权限修饰符

  1. 定义一个学生类:
    成员变量: 姓名 , 年龄
    构造方法: 无参,有参
    成员方法: 成员变量对应的getXxx和setXxx方法
    然后使用这个学生类
package org.oracle.test;

public class Student {
	private String name;
	private int age;

	public Student() {
	}

	public Student(String name, int age) {
	}

	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public void setName(String newName) {
		this.name = newName;
	}

	public void setAge(int newAge) {
		this.age = newAge;
	}

	public static void main(String[] args) {
		Student s1 = new Student();
		s1.setName("小明");
		s1.setAge(15);
		System.out.println(s1.getName());
		System.out.println(s1.getAge());
	}
}

//小明
//15

  1. 补全代码
package org.oracle.test;

public class Student {
	public void show(Student s) {
		s.method();
	}

	private void method() {
		System.out.println("哈哈...method方法被调用了....");
	}
}
package org.oracle.test;

public class StudentDemo {
	public static void main(String[] args) {
		// 在此处写代码,要求在控制台打印"哈哈...method方法被调用了...."
		Student s1 = new Student();//
		s1.show(s1);//
	}
}
  1. 继承的好处、弊端分别是什么?

子类可以使用父类的方法和属性,可以扩展
继承的好处:
1.提高了代码的复用性(多个类相同的成员可以放到同一个类里)
2.提高了代码的维护性(如果放大的代码需要修改,修改一处就行)
继承的弊端:
继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性。

  1. Java中继承的特点是什么?

1.只支持单继承,即一个子类只允许有一个父类。
2. 子类可以拥有父类的属性和方法
3. 子类可以拥有自己的属性和方法
4. 子类可以重写覆盖父类的方法
5. 可以声明父类,创建子类(又称父类装载子类)

  1. Overload(重载)和Override(重写)的区别是什么?

作用范围:重写的作用范围是父类和子类之间;重载是发生在一个类里面
参数列表:重载必须不同;重写不能修改
返回类型:重载可修改;重写方法返回相同类型或子类
抛出异常:重载可修改;重写可减少或删除,一定不能抛出新的或者更广的异常

java中“两同两小一大"原则是指重写原则。 重写 要求两同两小一大原则, 方法名相同,参数类型相同,子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。

  1. 编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类E。要求:
    (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak()方法,在speak方法中输出“咿咿呀呀…”的信息。
    (2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法中输出“小样的,不错嘛!会说话了!”的信息。
    (3)在People类中新增方法void think(),在think方法中输出“别说话!认真思考!”的信息。
    (4)在主类E中创建Monkey与People类的对象类测试这2个类的功能。
package org.oracle.test;

public class Monkey {
	private String s;
	
	public Monkey() {
		
	}

	public Monkey(String s) {
		
	}

	public void speak() {
		System.out.println("咿咿呀呀…");
	}
}
package org.oracle.test;

public class People extends Monkey{
	@Override
	public void speak() {
		System.out.println("小样的,不错嘛!会说话了!");
	}
	public void think() {
		System.out.println("别说话!认真思考!");
	}
}

package org.oracle.test;

public class E {
	public static void main(String[] args) {
		Monkey m1 = new Monkey();
		People p1 = new People();
		m1.speak();
		p1.speak();
	}
}

//咿咿呀呀…
//小样的,不错嘛!会说话了!

  1. 按要求编写一个Java应用程序:
    (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。
    (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,和计算体积的方法。
    (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。
package org.oracle.test;

public class Rectangle {
	private double x;
	private double y;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double x, double y) {
		this.x = x;
		this.y = y;
	}


	public double Area() {
		return x * y;
	}
}
package org.oracle.test;

public class Cuboid extends Rectangle {
	private double z;
	
	public Cuboid() {
		
	}

	public Cuboid(double x, double y,double z) {
		super(x, y);
		this.z = z;
	}

	public double Volume() {
		
		return Area()* z;
	}

}
package org.oracle.test;

public class Test {
	public static void main(String[] args) {
		Cuboid c1 = new Cuboid(2,3,4);
		System.out.println("面积为"+c1.Volume());
	}
}

//面积为24.0

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值