欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 继承 封装 多态

程序员文章站 2024-03-16 23:32:16
...

                  JAVA    面向对象 Day 03     7/13

封装提高安全

  封装步骤:1.作用域设置为:private

2. 设置属性的get/set 方法

Get 方法作用:访问属性

Set 方法作用给属性赋值

3.通过get/set方法访问或者给属性赋值。

class frame{

  privateintage;

  private String name;   //封装

  publicint getAge(){

     returnage;

  }

  publicvoid setAge(int age) {

     this.age = age;

  }

  public String getName() {

     returnname;

  }

  publicvoidsetName(String name) {

     this.name = name;

  }

}

-----------------------------------------------------------

Mismatch  不 匹配

方法重载:在同一个类中,方法名相同,参数的个数和类型不同。构造方法亦可重载

类的构造函数无参构造函数如果没有的话,系统会默认提供。

Alt + shift+S         快捷创建有参无参构造函数

类成员的访问修饰符:


作用域

修饰符

同一个类中

同一个包中

子类中

任何地方

private

可以

不可以

不可以

不可以

默认修饰符

可以

可以

不可以

不可以

Protected

可以

可以

可以

不可以

Public

可以

可以

可以

可以

 

This  使用类里面的值      object 是所有类的父类

多态: 同一个引用类型使用不同的实例而执行不同操作,方法重写是实现多态的基础

 参数是父类,传过来的传过来的是子类的实例对象

多态根据不同类型的参数,执行不同的操作

重写 (override)

方法重载(overload)

重载与重写的区别:

1、重载:
方法名相同,参数列表不同
2、重写:
也叫覆盖,指在子类中定义一个与父类中方法同名同参数列表的方法。因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码。

继承 extends    java中只支持单根继承,即一个类只能有一个父类

package dierzhou;
class Animal{
	String name;
	int love;
	int health;
	public String getName() {
		return name;
	}
	public int getLove() {
		return love;
	}
	
	public int getHealth() {
		return health;
	}
	public void toStr(){
		
	}
}
class  qiEr extends Animal{
	 public void qiEr(int n) {
		 if (n==0){
		 System.out.println(name+"是一个"+"酷酷的Q仔");
		 }else{
			 System.out.println(name+"是一个"+"帅帅的Q仔");
		 }
}
	 @Override   //重写
	public void toStr() {
		// TODO Auto-generated method stub
		super.toStr();
		if(this.health<60){
			System.out.println("吃药打针后");
			this.health=70;
		}
	} 	 
}
class  Dog extends Animal{
	String strain;
	public String getStrain() {
		return strain;
	}
	 public void Dog(int n) {
		 if (n==0){
		 System.out.println(name+"是一个"+"酷酷的雪纳瑞");
		 }else{
			 System.out.println(name+"是一个"+"聪明的拉布拉多犬");
		 } 
  }
	 @Override  //重写
	public void toStr() {
		// TODO Auto-generated method stub
		if(this.health<60){
			System.out.println("吃药打针后");
			this.health=70;
		}
	}
}
   //多态
class Master{
	public void cure(Animal animal){
		animal.toStr();             
	}
}
public class tste {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//程序开始时间
		long start=System.currentTimeMillis();  
          qiEr q=new qiEr();
          Master m=new Master();   //对象实例化
          q.name="小白";
          q.love=100;
          q.health=49;
          System.out.println("我的名字叫:"+q.getName());
          System.out.println("生病中我的健康状态是:"+q.getHealth());
          m.cure(q);
          System.out.println("看病后中我的健康状态是:"+q.getHealth());
//          System.out.println("我的名字叫:"+q.getName()+"\t 我的健康状态是:"+q.getHealth()+"\t我和主人的亲密度是:"+q.love);
          System.out.println("我和主人的亲密度是:"+q.love);
          q.qiEr(1);
          Dog d=new Dog();
          d.name="小虎";
          d.love=100;
          d.health=50;
          d.strain="拉布拉多";
          System.out.println("我的名字叫:"+d.getName()+"\t 我的健康状态是:"+d.getHealth()+"\t我和主人的亲密度是:"+d.love+"\t我的类型为:"+d.strain);
          m.cure(d);
          System.out.println("我的健康状态是:"+d.getHealth());
          d.Dog(2);;
         long end=System.currentTimeMillis();  //程序结束时间
         System.out.println("程序运行时间"+(end-start)+"ms");
	}
}

Java 继承 封装 多态