java面向对象概述总结

1.面向过程与面向对象的区别:

① 面向过程:分析解决问题的步骤,然后实现,关注流程

②面向对象:以分类思想分析进行思考和解决问题,分不同类,根据各类解决问题

2.类的定义:

类是一个模板,它描述一类对象的行为和状态

类的结构:①成员变量:也就是类的属性  ② 成员方法:可以实现的行为 ③构造方法:可以初始化对象 ④内部类:即在类中再定义一个类  ⑤代码块:没有名称的代码块

3.对象:

对象是类的一个实例,是一个具体的事物,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

构造方法 :构造方法必须与类名相同,且没有返回值,不需要void 修饰 ,分为有参构造和无参构造,只要创建对象时,会默认调用一个构造方法。

方法的重载与重写 区别

  方法重写就是 其他内容不变 只对方法体里面的内容进行修改

区别方法重载方法重写
返回类型可以改变一定不变
参数列表必须改变一定不变
访问可以修改一定不能做更严格的限制

面向对象语言的三大特性:封装,继承,多态

(1)封装:将类的某些信息隐藏在类的内部,防止该类的数据和代码被外部定义的代码直接访问,而它自己有提供的方法实现对隐藏信息的访问。

代码如下

public class Person{

   String name;
   private int age;  // 对人的年龄实行封装
   public void setAge(int age){   
       this.age = age;
   }
   public int getAge(){
        return age;    // 返回私有属性的值 ,此方法需要在输出时用 对象名称.getAge()
    }
}
public class Test {
    public static void main(String[] args) {
        Person person = new Person();
        // 如果直接创建 person.age = 15 就会报错  age已经被定义为私有
        person.setAge(15);
        //System.out.println(person.age);  //因为age私有属性 所以要加具体方法实现
        System.out.println(person.getAge()); 
    } 
}

优点:①隐藏类的实现细节  ②可以对成员变量更精确的控制  ③类的内部结构可以自由修改  ④良好的封装可以减少耦合

(2)继承:就是子类继承父类的特征和行为,从子类继承父类方法,使子类具有父类相同的行为

1.为什么需要继承 ?  如果没有继承 子类会有很多和父类相同的属性和行为 ,造成代码大量重复,不利于后期修改,为了解决这个问题,出现了继承。

继承类型:java不支持多继承,但支持多重继承。比如C可以继承B,B再继承A,但是不能C同时继承A和B

继承的特性:①子类可以拥有父类非private的属性,方法  ②子类可以拥有自己的属性,方法,即对父类进行拓展  ③子类可以用自己的方式实现父类的方法  ④提升了类之间的耦合性。

继承不得不提到super和this关键字

this:指向自己的引用,调用本类的属性和方法

super:实现对父类成员的访问,用来引用当前对象的父类  

 (3)多态:同一个事物在不同状态下的表现不同

存在条件:1 继承    2 重写   3 父类引用指向子类对象 Animal c = new Cat();

使用方法:1.非静态成员方法,编译看左边,运行看右边  2.静态成员方法 和 变量 编译运行都看左边  。 因为成员方法存在覆盖,而成员变量不存在

优点:1.提高了程序的扩展性  2.可替换性 3.消除类型之间的耦合关系 4.更灵活简化

访问权限修饰符

修饰符     同类同包不同类 不同包子类不同包其他类
public  可以访问可以访问可以访问可以访问
protected  可以访问可以访问可以访问不可以访问
default  可以访问可以访问不可以访问不可以访问
privarte 可以访问不可以访问不可以访问不可以访问

4.接口:是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

(1)特性:①结构是隐式抽象的 默认指定为 public abstract  不必写出abstract关键字  ②接口中可以含有变量,隐式指定为 public static final 变量  ③接口不能实现接口中的方法,只能由实现接口的的类来实现接口中的方法

(2)接口和类的区别:①接口不能被实例化对象  ②接口中所有方法都必须是抽象的,但是在jdk8以后接口中可以用default关键字修饰非抽象方法  ③接口中可以定义静态方法和常量 ,默认被public static final  修饰 ④一个接口可以继承多个接口  ⑤当类要实现接口时,必须要实现接口中的所有方法,否则需要定义为抽象类。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值