zoukankan      html  css  js  c++  java
  • 面向对象(类与对象)

    Java语言是一种面向的程序设计语言,而面向对象思想是一种程序设计思想。我们参照面向对象思想使用java语言去设计,开发计算机程序。

    除去面向对象之外还有一个面向过程。

    区别:

    • 面向过程:当要实现一个功能的时候,面向过程,要处理好每一个节点,直至整个过程结束,然后得到结果。
    • 面向对象:当要实现一个功能的时候,直接去调用一个关于这个功能相关的类,把过程交给其他类来处里,自己等着获取结果
    • 面向过程强调这功能的步骤,面向对象强调这功能的结果。

    举例:

    • 面向过程:把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干-->晾起来

    • 面向对象:把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来

    特点:

          面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

    什么是类:

              类是对一种具有类似的属性和行为的事物的集合。eg:学生类,教师类等等。学生有相同的属性:学生证号,姓名等等,有相同的行为:做作业,写卷子等等。

    现实中:

    • 属性:就是该事物的状态信息。
    • 行为:就是该事物能够做什么。

    什么是对象:

              是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。比如学生类中的张三是一个学生,那么张三就是一个对象,他具有学生证号,姓名等属性,也具有做作业,写卷子等行为

    类与对象的关系:

    • 类是对一组事物的统称描述,类似抽象的,它看不见摸不着   eg: 比如手机类是手机的统称,它有一系列的属性比如颜色,配件等等,行为是
    • 对象是一组事物的实例,是具体的,是真正存在的可以看得见摸得着 eg:  你买的一个小米9手机是一个实实在在的东西,就属于一个对象 

    类的定义:

    访问权限修饰符 class 类名 {
          //成员变量
         //成员方法
    }

    对象的定义:类名 对象名 = new 类名();

    类与对象的练习:

    public class OverloadDome03 {
        // 定义一个求和 工具类
        
        /* 定义sum方法两个sum(int,int) 并返回值*/
        public int sum(int a,int b) {
            return a+b;
        }
        
        /* 定义sum方法两个sum(int,int,int) 并返回值*/
        public int sum(int a,int b,int c) {
            
            return a+b+c;
        }
        
        /* 定义sum方法两个sum(double,double) 并返回值*/
        public double sum(double a,double b) {
            return a+b;
        }
        
        /* 定义sum方法两个sum(int,double) */
        public void sum(int a,double b) {
            System.out.println(a+b);
        }
    }
    
    
    public class OverloadDome03Test {
            /* 求和测试类 */
        public static void main(String[] args) {
            OverloadDome03 ov03 = new OverloadDome03();//实例化OverloadDome03
            
            double sum = ov03.sum(0.0, 1.293);    //调用sum(double,double)f方法  并打印
            System.out.println(sum);
            
            int sum1 = ov03.sum(1,2);            //调用sum(int,int)f方法  并打印
            System.out.println(sum1);
            
            ov03.sum(12,19.22);                  //调用sum(int,double);
            
            int sum2 = ov03.sum(1,2,3);         //调用sum(int,int,int)f方法  并打印
            System.out.println(sum2);
        }
    }

    方法定义:

    语法:

    访问权限修饰符 静态修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名...){
      执行代码...
      return 返回语句;

    成员变量和局部变量:

    在之前的个工作中,我们学习了怎么去定义变量,变量又分为成员变量(又叫全局变量)和局部变量。下面直接说区别吧。

    1. 位置不同:全局变量定义在类之内,方法之外;局部变量定义在方法之内。
    2. 作用域不同:全局变量作用于整个类中;局部变量作用于单个方法之中。
    3. 初始化不同:全局变量可以不用初始化赋值就可以使用;局部变量若要使用必须先初始化然后才能使用。
    4. 内存位置不同:全局变量存储在堆内存,局部变量存储在栈内存。
    5. 生命周期不同:全局变量随对象的创建而存在,随对象的销毁而消失。局部变量随方法的调用而创建,方法结束而消失。

    下面简单的定义一下:

    public class VariableDome01 {
        int j; // 定义一个全局变量j
    
        public void test1() {
            int i = 1;      //定义一个局部变量i并赋值i 
            System.out.println(j+i);   //假若i没有赋值将无法使用
        }
    }
    
    //测试
    public class VariableDome01Test {
        public static void main(String[] args) {
          VariableDome01 variableDome01 = new VariableDome01();
          variableDome01.j=1;   //测试中可以直接给j赋值却不能为i赋值因为i只作用于VariableDome01中test1方法中
          variableDome01.test1();  //调用后打印为2
        }
    }

    方法重载:

    概念:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。

    • 多个方法在同一个类中
    • 多个方法具有相同的方法名
    • 多个方法的参数不相同,类型不同或者数量不同
    • 参数列表:个数不同,数据类型不同,顺序不同。

    如下有几个方法,可以看看重载方法有几个:

    public static void method(){}
    public static void method(int a){}
    static void method(int a,int b){}
    public static void method(double a,int b){}
    public static void method(int a,double b){}
    public void method(int i,double d){}
    public void method(){}
    public static void method(int i,int j){} 

    我简略的分析一波=-=我比较菜

    个人学习,内容简略。

     

  • 相关阅读:
    CentOS7 Python2.7.5升级3.7.1
    kubernets 集群和本地环境联调环境打通工具kt-connect
    Python学习指南
    Python爬虫(十九)_动态HTML介绍
    Python爬虫(十八)_多线程糗事百科案例
    Python爬虫(十七)_糗事百科案例
    Python爬虫(十六)_JSON模块与JsonPath
    python爬虫基本原理及入门
    Python操作数据库
    Python解析xml
  • 原文地址:https://www.cnblogs.com/2979100039-qq-con/p/13377859.html
Copyright © 2011-2022 走看看