Java基础---------------------------------------面向对象---------------------------------------

来源:互联网 发布:大数据产业分析 编辑:程序博客网 时间:2024/06/06 15:40
  ------- android培训java培训、期待与您交流! ----------

 面向对象

 导语------- 面向对象实际是一种思想是一个解决实际问题的一种思想,这种思想呢,就叫做面向对象

A .面向对象思想概述

    当需求单一,或者简单时,我们一步步去操作没问题,并且效率也挺高,可随着需求的更改,功能的增多,发现需要面对每一个步骤就很麻烦了,这时候就开始思索,能不能把这些步骤和更能进行封装封装时根据不同的功能进行不同的封装,功能类似的封装在一起,这样结构就清晰了很多,用的时候找到对应的类就可以了,这就是面向对象的思想

B.面向对象特点,

首先,面向对象是一种更符合我们思想习惯的思想,

其次,面向对象可以将复杂的事情简单化,

最后,面向对象使我们从执行者转变成了指挥者.

在实际应用中,先要去找具有所需的功能的对象来用,如果对象不存在,那么创建一个具有所需功能的对象.这样可以简化我们的代码,并且提高程序的复用性

C.面向对象的特征

1 封装的概述

    a:封装概述
          是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

   b:封装好处
        隐藏实现细节,提供公共的访问方式
        提高了代码的复用性
        提高安全性。
    c:封装原则
        将不需要对外提供的内容都隐藏起来。
        把属性隐藏,提供公共方法对其访问。

代码实现

class Person{      int num = 10 ;  private int age = 20;            //公共方法  public void show(){     System.out.println(age);  System.out.println("这是公共方法");  }  //私有方法  private void method(){      System.out.println("这是私有方法");  }  public void function(){       method();  }}class  PersonDemo{public static void main(String[] args) {//创建Person对象Person p = new Person();System.out.println(p.num);//System.out.println(p.age);// age可以在Person中访问privatep.show();//p.method();// method()可以在Person中访问privatep.function();}}


2:继承
   (1):把多个类中相同的属性与功能提取到一个独立的类中,然后让其他类与这个独立的类产生关系.
       这种关系叫继承
   (2):java中继承格式
      class 子类名 extends 父类名{}
   (3):好处
        A:提高了代码的复用性
        B:提高了代码的维护性
        C:让类与类之间产生关系,多态的前提
        
      弊端:因为类与类之间产生了继承关系,就高耦合了

  (4):继承的特点:
        A:只支持单继承,不支持多继承
        B:支持多层继承(继承体系)
   
   (5):注意事项
        A:子类不能继承父类的私有成员(成员变量与成员方法)
        B:子类不能继承父类的构造方法.但是可以调用
        C:不要为了部分功能去继承

代码实现

class Student{//成员变量private String name;private int age;//构造方法public Student(){}public Student(String name,int age){    this.name = name;this.age = age;}//成员方法  setXxx()和getXxx()public void setName(String name){    this.name = name;}public void setAge(int age){    this.age = age;}public String getName(){    return name;}public int getAge(){    return age;}    //行为public void sleep(){   System.out.println("睡觉");}    public void eat(){   System.out.println("吃饭");}public void show(){   System.out.println(name+"的年龄是"+age);   }}class Teacher{   }class ExtendsTest{public static void main(String[] args) {//通过无参构造创对象 然后测试Student s = new Student();s.setName("小明");s.setAge(18);System.out.println("对象的名字是:"+s.getName());System.out.println("对象的年龄是:"+s.getAge());        System.out.println("----------------------");//通过带参构造创建对象Student s2 = new Student("AngleBaby",16);        s2.show();}}


(3) 多态

多态:某一个对象,在不同时刻表现出的不同状态
    
多态的前提:
(1):要有继承关系
(2):需要有方法重写,可以没有方法重写,只是没有意义
(3):父类引用指向子类对象
父 f  = new 子();


多态中的成员访问特点:
成员变量:编译看左边,运行看左边
属性:比如 父亲的年龄

代码实现

class Fu{int num = 20;public void show(){    System.out.println("show fu!");}public static void function(){    System.out.println("父亲的静态方法!");}}class Zi extends Fu{int num = 40;int num2 = 25;    public void show(){    System.out.println("show zi!");}public void method(){   System.out.println("method zi!");}public static void function(){    System.out.println("子类的静态方法!");}}class DuoTaiDemo {public static void main(String[] args) {//创建父类引用指向子类对象    Fu f = new Zi();System.out.println(f.num);//20f.show();//动态绑定,f.function();}}


D类与对象的关系

 程序是对现实事物的模拟化,例如超市的计费系统,银行的业务系统等等.我们学习编程语言就是为了模拟现实中的事物.我们学习的java语言最基本的单位是类,所以,我们就应该把食物用一个类来具体体现,由此,我们就得到了现实事物和类的关系,拿我们黑马的学生来说

我们每个学生都有自己的姓名、年龄、性别,这些属性,吃饭、睡觉、学习这些行为,由此,我们得到了现实中的食物和类的关系。

      属性--------

      行为--------方法

例如

class  Student{//定义成员变量String name;//姓名int age;//年龄String sex;//性别       //定义成员方法//学习的方法public void study(){   System.out.println("我们都很爱学习!");}//睡觉的方法    public void sleep(){   System.out.println("学习累了就睡觉,");}//吃饭的方法public void eat(){   System.out.println("学习饿了就吃饭");}}


总结一下,

类:就是一组相关的属性和行为的集合

对象:是该类事物的具体体现

在我们的java中,我们用成员变量来代表现实世界的属性,用成员方法(函数)来代表现实世界的行为 

0 0