zoukankan      html  css  js  c++  java
  • 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

    使用:

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

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

      

  • 相关阅读:
    apache安装遇到的问题
    babel+gulp实时转码ES6
    highcharts点击切换,不能自适应宽度
    多行文本溢出
    文件上传
    iscroll最后一个列表项无法显示出来
    curry化函数
    zepto中animate方法的使用注意
    js去除中间空格
    JS实现计算任意一个数的各个位数的和
  • 原文地址:https://www.cnblogs.com/fbbg/p/14105704.html
Copyright © 2011-2022 走看看