java第三天---类和对象

一、概述

java的核心思想:面向对象的编程

  编程有两种思想,面向过程和面向对象,现在开发几乎全是面向对象,这不是说面向对象开发比面向过程更简单,其实面向对象开发的更复杂,那为什么还要用面向对象呢?

  首先明白何为面向过程,何为面向对象。面向过程就是一切为实现功能为目标,实现完了就结束了,基本不考虑后期的维护难度。面向对象,更多的是考虑子模块的设计,每个功能模块都单独存在,要考虑重用性和可维护性,一切以结果为目标,忽略开发过程。

  再简单的说:你在餐馆点餐,要份辣子鸡,你就是面向对象,只说目的。厨师做出辣子鸡就是面向过程。

  在开发程序时,并不是说用面向对象后,就不用面向过程,这两个是同时存在的。当你将一个功能独立出来设计,随处调用的模块时,就是面向对象。当你在实现这个独立出来的功能时,就是面向过程的。

  在面向对象设计开发时,就要去封装一个一个的功能模块,然后在每个需要的地方去调用,或者子类的继承,多态。所以我们学习面向过程就是学习如何去“抽象"出类,然后进行封装,然后使用。概括就是:封装、继承、多态,或者再加上一个抽象

  我认为面向对象就像现在工业的模块化生产,像汽车,由各个零件的模型做出很多零件,再把一套成型的零件来组装一辆汽车。如果需要更改车型,只要改模型,就能生产出很多一样的零件。  

  具体解释:

    封装:保护功能模块的功能不被破坏

    继承:扩展原有的功能

    多态:一个类的功能可以呈现多种不同的结果,一个打印机,既能打印黑白,也能打印彩色。

  面向对象的开发过程:

    面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)

 二、类和对象

  类和对象是整个面向对象的基本组成单元。

  封装出来就是一个一个类,类是对现实世界上存在的东西的抽象形容。类里边有属性,有功能方法。

    对象是对类的具体描述,描述出来一个独立的个体,每个对象都有自己的属性和行为(功能方法)。

    类不能直接使用,对象可以直接使用。

  例如:人是一个物种,是一个类。有名字,年龄,身高,性别等属性。也有吃饭,走路,睡觉这些行为。但是这不是一个具体的,只是一类描述,当我们要使用类的某个功能是,就要实例化一个对象,这个对象是实实在在的能干事的。比如老师对班里的学生说,唱一个歌,但是大家不知道具体谁唱,这时老师说,小明来唱首歌,这就具体到了一个实实在在的对象。

   类的格式:

public class Person {
    String name;
    int age;
    int height;
    String sex;    //这里全都是成员变量

    public   Person(){};   //构造方法

    public void eat(){                 //成员方法,也是具体实现各种功能的地方
        System.out.println("eat");  
    }   
    
}
View Code

    对象的创建:对象是用来存储一个具体描述事物的一串相关联的数据。

public static void main(String[] args) {
//     使用new关键字创建对象
//     对象类型    对象名=new  类名();
        Person person = new Person();
//      给对象属性赋值
        person.name="小明";
        person.age=18;
        person.height=180;
        person.sex="男";
//      调用成员方法
        person.eat();
//      来调用各个属性的值
        System.out.println("姓名:"+person.name);
        System.out.println("年龄:"+person.age);
    }

三、方法/函数的定义和使用

  在程序设计中,常将一个功能模块写成函数,可以重复调用。

  函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等

  定义:

  权限修饰符  [static]  返回值类型   方法名(参数列表){

               代码块;

    [ 返回值;]

       }

  实例:

public class CeShi(){
//    无参无返回值     void来修饰无返回值的方法
    public void sum1(){
        int a=2;
        int b=3;
        System.out.println(a+b);
    }
//    无参有返回值   返回值类型修饰符的范围要大于等于return出来值得类型范围
    public int sum2(){
        int a=2;
        int b=4;
        return a+b;
    }
//    有参无返回值
    public void sum3(int a,int b){
        System.out.println(a+b);
    }
//    有参有返回值
    public int sum4(int a, int b){
        return a+b;
    }  
}



//对方法进行调用
public  class   CeTest{
        public static void main(String[] args) {
        CeShi ce = new CeShi();
//      无参无返回值
        ce.sum1();
//        无参有返回值
        int i = ce.sum2();  //有返回值的方法调用后可以用一个变量接收
        System.out.println(i);
//      有参无返回值
        ce.sum3(1,3);
//       有参有返回值
        int i1 = ce.sum4(3, 8);
        System.out.println(i1);
    }
}
    
View Code

使用:

  方法的调用:对象名.方法名

  属性的调用:对象名.属性名

  

原文地址:https://www.cnblogs.com/fbbg/p/14105704.html