Java——面对对象的基础

来源:互联网 发布:指尖奶茶知乎 编辑:程序博客网 时间:2024/05/14 14:50

1.“面对对象”和“面对过程”的概念

  • “面对过程”:用户提出了那些要求,程序员就针对用户的要求进行制作,先制作出一个整体,之后根据需要什么来拿什么使用。
  • “面对对象”:先对用户提出的要求进行分析,设计一个整体的图纸,与用户确认后,将整个工作分块处理,最后将其各部分组装在一起。
    “面对对象”比“面对过程”更能适应用户的变化,因为一旦用户要求发生变化,“面对过程”则要更改全部内容,而“面对对象”只需进行部分更改。

2.面对对象的三个特性:封装性,继承性,多态性

  1. 封装性:①将对象额属性和行为封装在一起于一个独立的单位中(即对象中)②另一种即“信息隐藏”,把一些信息进行隐藏,外界要么不能访问,要么就不能进行更改。
  2. 继承性:若一个子类值允许继承一个父类,则称为单继承;若继承多个父类,则为多继承。在Java中不支持多继承,只能通过接口来弥补这个缺点
  3. 多态性:①方法的重载:在一个类中方法使用同一个名字,但参数 不同。完成功能也不同。② 对象的多态:子类对象跟父类对象进行相互交换,而且根据子类的不同,完成功能也不同。

3.对象的创建及使用

【对象的创建】若已知类名为Person,取对象名为per;

Person per =null;//声明对象
per =new Person(); //实例化对象

【直接创建】

Person per =new Person(); //声明对象并实例化对象

范例:

class Person{    String name;     //声明姓名属性    int age;         //声明年龄属性    pebic void tell(){       //取得信息的方法        System.out.println("姓名:"+name+",年龄:"+age);    }}public class ClassDemo{    public static void main(String args[]){        Pereson per=new Person();   //创建对象并实例化对象    }}

4.访问对象中的属性和方法

访问属性: 对象名称.属性名 //per.name=”张三”;
访问方法:对象名称.方法名 //per.tell();


5.封装性

  • 【使用封装性】

属性封装: private 属性类型 属性名称 ;
方法封装: private 方法返回值 方法名称(参数表列){}

  • 【使用封装性不当】
class Person{    private String name;    private int age;    public void tell(){        System.out.println("姓名:"+name+",年龄:"+age);    }}public class First {    public static void main(String[] args) {        Person per=null;        per=new Person();        per.name="张三";    //错误,无法访问封装属性        per.age=-30;       //错误,无法访问封装属性        per.tell();    }

这里写图片描述

  • 封装性在一定程度上保证了类中的属性和方法不被外界访问,但是也让访问表的困难了,若要进行访问,则必须定义相应的public共有方法
class Person{    private String name;    private int age;    public void tell(){        System.out.println("姓名:"+getName()+",年龄:"+getAge());    }    public String getName(){        return name;    }    public void setName(String n){      //设置姓名        name=n;    }    public int getAge(){        return age;     }    public void setAge(int a){        //设置年龄        age=a;    }}public class First {    public static void main(String[] args) {        Person per=null;        per=new Person();        per.setName("张三");        per.setAge(-30);        per.tell();    }}

这里写图片描述

  • 在以后的开发中一定要将类中的属性进行封装,封装后的属性通过相应的方法进行访问。
0 0
原创粉丝点击