例题1
package 第七章;
class Parent {//父类
public Parent() {
//父类的构造方法
System.out.println("调用父类构造方法");
}
}
class Child extends Parent {//child类继承parent类
public Child() {
//子类的构造方法
System.out.println("调用子类构造方法");
}
}
public class 例题1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Child();
//实例化对象
}
}
例题2
package 第七章;
class Telephone5 {// 电话类
String button = "button = 0~9"; // 成员属性,10个按键
//创建一个拨打电话功能方法
void call() {
System.out.println("开始拨打电话");
}
}
//定义一个手机类继承电话类
class Mobile8 extends Telephone5{
//定义成员方法
String screen = "screen:液晶显示屏";
}
public class 例题2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化子类对象
Mobile8 a = new Mobile8();
//输出子类调用父类成员变量
System.out.println(a.button);
//输出子类调用自己的成员变量
System.out.println(a.screen);
//子类调用父类方法
a.call();
}
}
例题3
package 第七章;
//定义类
public class Student {
String name; //成员变量,名字,年龄
int age;
public Student(String name, int age) { //构造方法
this.name = name;
this.age = age;
}
//重写toString方法
public String toString() {
return"我叫" + name + ",今年" +age + "岁。";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一次给构造方法赋值
Student s1 = new Student("张三", 16);
//输出s1
System.out.println(s1);
//第二次给构造方法赋值
Student s2 = new Student("里斯", 19);
System.out.println(s2);
}
}
例题4
package 第七章;
public class 例题4 {
int id;//身份证号
String name;//名字
//定义有参构造方法
public 例题4(int id, String name) {
this.id = id;
this.name = name;
}
//重写Object类的equals()方法
public boolean equals(Object obj) {
if(this == obj)
return true;
if(obj == null)
return false;
if(getClass() != obj.getClass())
return false;
例题4 other = (例题4)obj;
if(id != other.id)
return false;
return true;
}
//重新Object类的toString()方法
public String toString() {
return name; //只返回名字
}
//主方法
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化对象并给构造方法赋值
例题4 p1 = new 例题4(220, "tom");
例题4 p2 = new 例题4(220, "汤姆");
例题4 p3 = new 例题4(220, "张三");
Object o = new Object();
System.out.println(p1 +"与" + p2 +"是否为同一人?");
System.out.println("equals()方法的结果" + p1.equals(p2));
System.out.println("==运算符的结果" + (p1 == p2));
System.out.println();
System.out.print(p1 +"与" + p3 +"是否为同一人?");
System.out.println(p1.equals(p3));
}
}
例题5
package 第七章;
//向上转型,自动类型转换
//先创建一个父类
class People{
}
//再创建一个子类继承父类
class Teacher extends People{
}
public class 例题5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
People tom = new Teacher();
//实例化对象,把子类new出来对象赋值给父类tom,老师tom是人
}
}
例题6
package 第七章;
//强制类型转换,向下转型
//创建父类鸟类
class Bird{
}
//创建子类鸽子类
class Pigeon extends Bird{
}
public class 例题6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Bird bird = new Pigeon();
//实例化对象,向上转型,鸽子是一只鸟
Pigeon pigeon = (Pigeon)new Bird();
//强制类型转换,实例化对象,这只鸟是一只鸽子
}
}
例题7
package 第七章;
class Quadrangle{ //创建四边形类
}
class Square extends Quadrangle{ //继承四边形类的正方形
}
class Circular{ //创建圆型类
}
public class 例题7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Quadrangle q = new Quadrangle(); //实例化四边形对象
Square s = new Square(); //实例化正方形对象
System.out.println(q instanceof Square); //判断四边形对象是否为正方形的子类
System.out.println(s instanceof Quadrangle); //判断正方形对象是否为 四边形子类
//System.out.println(q instanceof Child); //判断四边形对象是否为圆形子类
}
}
例题8、9
package 第七章;
//方法重载
public class 例题8 {
//区别下列发方法
//写第一个方法
public static int add(int a, int b) {
return a + b;
}
//写与第一个方法相同,参数类型不同的方法
public static double add(double a,double b) {
return a + b;
}
//写与第一个方法相同,参数个数不同的方法
public static int add(int a) {
return a;
}
//写与第一个方法相同,两种参数的方法
public static int add(int a,double b) {
return a;
}
//写与第四个方法相同,两种参数类型顺序不同的方法
public static int add(double a,int b) {
return b;
}
//不定长参数方法
public static int add(int...a) {
int s = 0;//累加器
for(int i = 0;i<a.length;i++) {//根据参数个数做循环操作
s+=a[i];//将参数累加存储
}
return s;//返回累加器,就是将计算结果返回
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//调用方法,输出返回值
System.out.println("调用add(int,int)方法," + add(1,2));
System.out.println("调用add(double,double)方法," + add(2.1,3.3));
System.out.println("调用add(int)方法," + add(1));
System.out.println("调用add(int,double)方法," + add(1,8.0));
System.out.println("调用add(double,int)方法," + add(5.0,8));
//调用不定长参数方法,输出返回值
System.out.println("调用不定长参数方法:"+add(1,2,3,4,5,6,7,8,9));
System.out.println("调用不定长参数方法:"+add(1));
}
}
例题10
package 第七章;
public class 例题10 {
//声明静态的常量PI
static final double PI = 3.1415926;
public static void main(String[] args) {
// TODO Auto-generated method stub
//输出静态常量PI
System.out.println("圆周率的值为:" + PI);
//shu'chu
System.out.println("半径为3的圆的周长为:" + (2 * 3 *PI));
//尝试修改PI
//PI = 3.1415927;
}
}
例题11
例题12
package 第七章;
//定义图形类
class Shape1{
}
//定义正方形类继承图形类
class Squart5 extends Shape1{
}
//定义圆形类继承图形类
class Circular1 extends Shape1{
}
public class 例题12 {
//定义一个静态方法
public static void draw(Shape1 s) {
//判断s是否为正方形子类
if(s instanceof Squart5) {
//是的化输出字符串
System.out.println("绘制正方形");
}
//判断是否为圆形的子类
else if(s instanceof Circular1) {
//是的化输出字符串
System.out.println("绘制圆形");
}
else {
//否则输出字符串
System.out.println("绘制父类图形");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化对象并调用方法
draw(new Shape1());
//实例化对象并调用方法
draw(new Squart5());
//实例化对象并调用方法
draw(new Circular1());
}
}
例题13
package 第七章;
//定义一个可绘制接口
interface Paintable{ //绘制接口
public void draw(); //绘制的接口方法
}
//定义一个四边型类
class Quadrangle2{
//定义一个四边形类的成员方法
public void doAnything() {
System.out.println("四边形提供的方法");
}
}
//定义一个平行四边形类,继承四边形类并实现可绘制接口
class Parallelongram extends Quadrangle2 implements Paintable{
public void draw() {
System.out.println("绘制正方形");
}
public void boAnything() {
System.out.println("继承重写的四边形方法");
}
}
//定义一个正方形类继承四边形类并实现绘制接口
class Square3 extends Quadrangle2 implements Paintable{
public void draw() {
System.out.println("绘制正方形类");
}
}
//定义圆形类,只有实现绘制接口
class Circular6 implements Paintable{
public void draw() {
System.out.println("绘制圆形");
}
}
public class 例题13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化正方形对象
Square3 s = new Square3();
//用对象s调用draw()方法
s.draw();
//调用doAnything方法
s.doAnything();
//实例化平行四边形对象
Parallelongram p = new Parallelongram();
//调用draw方法
p.draw();
//调用doAnything方法
p.doAnything();
//调用重写的方法
p.boAnything();
//实例化圆形对象
Circular6 c = new Circular6();
//调用draw方法
c.draw();
}
}