首页 > 编程语言 >面向对象编程OOP

面向对象编程OOP

时间:2023-05-20 15:36:13浏览次数:40  
标签:String int void class static OOP 面向对象编程 public

面向对象编程OOP

面向过程思想

步骤清晰简单,第一步作什么,第二步做什么....

面对过程适合处理一些较为简单的问题。

面向对象思想

物以类聚,分类是思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

面向对象适合处理复杂的问题,适合处理需要多人协作的问题!

对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理,

面向对象

面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据。

抽象

三大特性:封装、继承、多态

从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。

从代码运行角度考虑是现有类后有对象。类是对象的模板。

回顾方法的定义

package oop.demo01;

import java.io.IOException;

//Demo01类
public class Demo01 {
//main方法
    public static void main(String[] args) {

    }
    /*
    * 修饰符 返回类型 方法名(...).{
    * //方法体
    * return 返回值
    * }
    * */
    // return结束方法,返回一个结果
    public  String sayhello(){
        return "hello,word";
    }
    public  int max(int a,int b){
        return a>b?a:b;//三元运算符
    }
    public void readFile(String file)throws IOException {

    }
}

回顾方法的调用

静态方法调用

package oop.demo01;

public class Demo02 {
    //静态方法 staic
    public static void main(String[] args) {
        Student.say();
    }
    //非静态方法
}
package oop.demo01;
//学生类
public class Student {
    //方法
    public  static  void say(){
        System.out.println("学生说话了");
    }
}

非静态方法调用

package oop.demo01;

public class Demo02 {
    //非静态方法
    public static void main(String[] args) {
        //实例化这个类 new
        //对象类型 对象名=对象值
        Student student=new Student();
        student.say();
    }
}
package oop.demo01;
//学生类
public class Student {
    //方法
    public  static  void say(){
        System.out.println("学生说话了");
    }
}

形参和实参

package oop.demo01;

public class Demo03 {
    public static void main(String[] args) {
        //实际参数和形式参数的类型要对应
        int add=Demo03.add(1,2);
        System.out.println(add);
    }
    public static int add(int a,int b){
        return a+b;
    }
}

值传递

package oop.demo01;
//值传递
public class Demo04 {
    public static void main(String[] args) {
        int a=1;
        System.out.println(a);
        Demo04.change(a);
        System.out.println(a);//1
    }
    //返回值为空
    public static void change(int a){//a为形参
        a=10;
    }
}

引用传递

package oop.demo01;
//引用传递:对象 本质还是值传递
public class Demo05 {
    public static void main(String[] args) {
        Person person=new Person();//实例化过程
        System.out.println(person.name);//null
        Demo05.change(person);
        System.out.println(person.name);//秦将
    }
    public static void change(Person person ){//a为形参
        //person是一个对象,指向是Person person=new Person();这是一个具体的人,可以改变属性!
       person.name="秦将";
    }
}
//定义了一个Person类,有一个属性:name
class Person{
    String name;//null
}

标签:String,int,void,class,static,OOP,面向对象编程,public
From: https://www.cnblogs.com/sx-xiaoL/p/17417285.html

相关文章

  • 软构笔记-8-ADT和OOP中的“等价性”
    目录软构8ADT的等价操作不可变数据类型的等价性==vs.equals()可变数据类型的等价性软构8本章大纲:理解特性之间的等价关系站在观察者角度,利用AF,定义不可变对象之间的等价关系引用等价性和对象等价性可变数据类型的观察等价性和行为等价性理解Object的契约,正确实现等......
  • ADT和OOP中的“等价性”知识点总结
    知识点概要:等价关系不可变类型的等价性==与equals()实现equals()对象合同可变类型的等价性自动装箱和等价一、等价关系ADT的等价关系是基于AF来定义的等价关系:自反、对称、传递二、不可变类型的等价性不可变类型的等价性还是依据与AF,AF映射到同样的结......
  • 从C到C++:学习C++的高级语法、STL和面向对象编程
    好的,那我为您写一篇有关C++编程的文章,详情如下。标题:从C到C++:学习C++的高级语法、STL和面向对象编程开头:C++语言是对C语言的扩展,是一种面向对象的程序设计语言。它具有丰富的数据类型、函数模板、类模板、标准模板库等高级特性。掌握高级语法、STL和面向对象编程,可以使程序员更加高......
  • 面向对象的编程(OOP)知识点总结
    软件构造期末考试将近,在此我将从OOP这一章节开始复习,记录下该章节中的重点内容。知识点概要:OOP基本概念:对象、类、属性、方法、接口和枚举OOP的独特特征:——封装与信息隐藏——继承与重写——多态、子类型、重载——静态与动态分派Java中一......
  • 一、Hadoop平台安装
    卸载自带OpenJDK(最小化安装不用执行)[root@master~]#rpm-qa|grepjava[root@master~]#rpm-e--nodepsxxx配置免密登录生成密钥对:[root@master~]#ssh-keygen-trsa(回车四次)发送公钥:[root@master~]#ssh-copy-id192.168.100.10ssh-copy-id192.168.100.20ss......
  • 五、Sqoop平台安装
    实验任务一:下载和解压Sqoop解压sqoop:tar-zxvfsqoop-1.4.7.bin__had.gz重命名:mvsqoop-1.4.7.bin__hadoop-2.6.0/sqoop实验任务二:配置Sqoop环境切换目录:cd/usr/local/src/sqoop/conf复制sqoop-env-template.sh模板:cpsqoop-env-template.shsqoop-env.sh编辑文......
  • Hadoop的核心配置文件
    1.core-site.xml:该配置文件包含了Hadoop通用配置,例如Hadoop的文件系统和I/O设置、Hadoop日志目录、Hadoop缓存设置等。2.hdfs-site.xml:该配置文件包含了Hadoop分布式文件系统(HDFS)的配置,例如HDFS的副本数、块大小、数据目录、安全设置等。3.yarn-site.xml:该配置文件包含了Hado......
  • 【hadoop】 3005-hadoop对象序列化编码
    一、hadoop序列化操作Writable接口,是根据 DataInput 和 DataOutput 实现的简单、有效的序列化对象MR的任意Key和Value必须实现Writable接口.MR的任意key必须实现WritableComparable接口二、自定义Writable,实现MapReduce程序1、需求内容日期 ......
  • 【hadoop】 4001-Partitioner编程
    MapReduce重要组件——Partitioner组件(1)Partitioner组件可以让Map对Key进行分区,从而可以根据不同的key来分发到不同的reduce中去处理;(2)你可以自定义key的一个分发股则,如数据文件包含不同的省份,而输出的要求是每个省份输出一个文件;(3)提供了一个默认的HashPartitioner......
  • Hadoop-3.3.5单机版安装步骤
    1.下载JDK和Hadoop[略]2.解压[略]3.创建hadoop数据存储的目录mkdir-p/home/hadoop/tmp/home/hadoop/hdfs/data/home/hadoop/hdfs/name4.配置JAVA环境和HADOOP_HOMEvim/etc/profile添加如下内容JAVA_HOME=/home/fanqi/jdk1.8.0_202HADOOP_HOME=/home/hadoop/hadoop-......