构造方法
在执行的时候,无参构造方法会自动生成,但是如果类中有了有参构造方法,则不会自动生成。推荐在写类的时候将有参和无参构造方法都写;在我们执行的时候,new对象时,对象名后面括号[ Dog dog = new Dog() ] 里面可以有的参数类型必须符合类中已声明的有参构造方法
public Dog(){
System.out.println("Dog无参构造方法....");
this.name="二哈";
}
public Dog(String n,int h,int love){
System.out.println("有参构造方法....");
this.name=n;
this.health=h;
this.love=love;
}
测试
Dog dog = new Dog();
Dog dog2= new Dog("二哈",89,100);
方法重载
在同一个类里面方法名相同,参数列表(方法参数的个数或参数类型)不同,称之为 方法重载 方法重载与方法返回值和方法修饰符没有任何关系
封装
封装是面向对象三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的信息,而是通过该类所提供的方法来实现对内部的操作和访问。
步骤
1.将属性私有化 设为private
2.编写setter方法,针对用户输入的值进行判断
3.编写getter方法来获取值
注:
面向对象三个特征:封装、继承、多态。
继承:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。
实现:如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们的实现这个接口,各自实现自己具体的处理方法来处理那个目标
第一、联系
继承父类和实现接口都能实现代码重用,提高开发效率。提现了实物的传递性,继承关系达到复用的目的。
第二、区别
1、修饰不同
不同的修饰符修饰;实现:implements,继承:extends;
2、数量不同
Java只支持“接口”的多继承,不支持“类“”的多继承;而继承在java中具有单根性,子类只能继承一个父类。
总结为:单继承,多实现。
3、属性不同
在接口中只能定义全局常量(static final),和无实现的方法;而在继承中可以定义属性方法,变量,常量等...
4、调用不同
某个接口被类实现时,在类中一定要实现接口中的抽象方法;而继承想调用那个方法就调用那个方法,毫无压力
总结:
接口是:对功能的描述(方法/行为),接口传达的意思是:拥有某种功能,能干嘛,比如:Serializable代表可序列化的。
继承是:什么是一种什么,继承传达的意思是:is-a,比如:猫 是一个 动物,猫就是动物的子类。