精华内容
下载资源
问答
  • 数据:描述客观事物的数字、字符以及能输入机器且被处理的各种符号的集合。 ​ 2.数据元素:数据元素是组成数据的基本单位,通常称为记录。 ​ 3.数据项:不可分割的最小单位,具有独立含义。 ​ 4.数据对象:性质...
    ​1.数据:描述客观事物的数字、字符以及能输入机器且被处理的各种符号的集合。    ​
    2.数据元素:数据元素是组成数据的基本单位,通常称为记录。    ​
    3.数据项:不可分割的最小单位,具有独立含义。    ​
    4.数据对象:性质相同的数据元素的集合,是数据的一个子集。    
    ​5.数据结构:指相互之间存在一种或多种特定关系的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。通常有:表结构、树形结构、图形结构。    ​
    6.逻辑结构:人的大脑想像,可以画在纸上,比如具有线性表结构、空关系、树型结构、图型结构。例如可以把逻辑结构用物理结构(比如顺序存储)在计算机中存储起来。  
    (1)逻辑结构分为线性结构和非线性结构俩大类。(主要分为这俩大类)
    (2)同时也可以分为空关系,表结构,树型结构,图型结构四大类。
    线性结构就是一对一关系,非线性结构就是一对多关系(树型,图型)。
    
    展开全文
  • JAVA OOP(一)——OOP概念,类与对象

    千次阅读 2017-06-12 15:23:07
    OOP概念,类与对象 OOP——面向对象编程 类与对象 ** OOP——面向对象编程 首先,我们来举一个例子: 现在我要用用代码实现下列要求,定义一只猫,它的名字叫”小芳”,年龄是“3岁”,并且会叫,叫声是...

    OOP概念,类与对象


    • OOP——面向对象编程
    • 类与对象
      • 对象

    OOP——面向对象编程

    首先,我们来举一个例子:
    现在我要用用代码实现下列要求,定义一只猫,它的名字叫”小芳”,年龄是“3岁”,并且会叫,叫声是“喵喵~”
    我们分析这个要求时会发现,我们需要定义两个变量和一个方法,变量分别是名字和年龄,方法是 cry,我们来写一下看看

    public class CatTest{
        public static void main(String[] args){
            String catName="小芳";
            int catAge=3;
            cry(catName,catAge);
        }
        public static void cry(String name,int age){
            System.out.println("喵喵~");
            System.out.println("我是"+name+",我今年"+age+"岁了。");
        }
    }

    这种实现方式是一种面向过程的结构化程序设计,是一种以过程为核心的编程思想,即分析出解决问题所需要的步骤,然后一一实现,使用时在main方法中再一一调用。这种方法并不是说不好或者不对,但是我们想一下, 如果我养了好几只猫,甚至是我开了个宠物店,养了几十上百只猫,那我做系统的时候难道要定义几十上百个买的变量吗?有些同学会说那用数组啊,大家仔细看,这里名字(catName)是String字符串类型的,而年龄(catAge)是int类型的,我们说过数组只能存储同一类型的数据,而且数组的长度是不能变的,如果我多养一只难道要写一遍程序吗?再说了,如果用把不同类型的数据分成一个数组,那我们如果还有别的变量例如品种,食性,价格等等··每个猫的叫声也不一样,颜色不一样,我们真的能做到简化代码吗?如果真的遇到这种情况我们该怎么办呢?
    这里我们就介绍一下我们的新知识——OOP(Object Oriented Programming) 面向对象编程
    那我们再从另一个角度出发重新思考一下这个问题,我既然养了这么多猫,那我先找到他们的共同点,然后对每一个猫都单独进行操作这样行不行呢?首先,它们都有 名字,年龄;其次,它们都会 叫。那我如果有一个东西能专门把这些共同的东西封装起来,下次我用的时候直接提取是不是要方便很多呢?我们继续往下看~


    类与对象

    面向对象有两个核心概念——类(Class)和对象(object)
    

    类(Class)的概念

    类(Class)定义了一件事物的抽象特点。通常来说,类定义了事物的属性和行为。举例来说,”猫”这个类会包含猫的一切基础特征,例如它的名字、年龄,毛皮颜色和 叫 的能力。

    注意:类是对某一事物的描述,是抽象的,概念上的定义

    1)定义一个类

    定义格式:

    class  类名{
        ...
    }

    代码案例:

        class Cat{
        //定义了一个类, 类名是 cat, 代表 “猫”  
        }

    2)定义类的成员(属性(变量)和行为(方法))

    每个事物都有自身的属性和行为,所以我们把他们抽象的提取出来,然后定义在类里面,成为它的成员,其中属性是个值,我们定义为变量(成员变量),行为是个动作,我们定义为方法。

    a)定义类的成员变量(属性)

    例如:我们把“猫”这个事物的属性抽象的提取出来, 它们都有 “名字”,“年龄”,但是重点是我们没有具体指哪个猫,所以我们要定义的是变量“名字”,“年龄”,但是没有值。
    代码案例:

    class Cat{
        String name;
        int age;
    }

    a)定义类的方法(行为)

    例如:我们把“猫”的行为提取出来,它们都会“叫”
    代码案例:

    class Cat{
        String name;
        int age;
        public  void cry(String name,int age){
            System.out.println("喵喵~");
            System.out.println("我是"+name+",我今年"+age+"岁了。");
        }
    }

    对象(object)的概念

    对象是类的实例,JAVA中有一句话叫做“万物皆对象”。举例来说,我们说类cat是指“猫”这个类别,而我们说的对象,就是专指某 一 个 猫!这个猫叫“小芳”,年龄是“3岁”。我们现在不是对变量名字和年龄进行操作,而是对这个叫小芳的猫进行操作。

    注意:对象是实际存在的该事物的个体,是具体的,现实的

    1)创建一个对象

    我们学到基本数据类型时就说过,JAVA中有很多种类型,以后我们也会自己创建类型,就int而言,int代表了整型,同样的,我们创建的类Cat 也一样,它被我们定义为代表了“猫”的类型。int代表了一个整型,它是一个类别,并不是单指某一个整数,所以我们定义或者说指定某一个具体的整数(例如18)时会这么写

    int  age=18;

    这样就定义了一个int类型的变量age,用age来存这个具体的数18;
    同样的,我们的Cat类型也一样,它代表了一个“猫”的类型,但是不是单指某一个猫,如果我们要单指某一个猫(例如小芳),那我们就要创建一个变量来指向它,这个时候,我们就称这只猫是一个对象。而这个过程就是创建对象:

    创建对象的语法:
    引用类型  引用类型变量(引用/变量名/对象名) = new  引用类型();
    

    例如,我们创建一个类Cat的实例(对象)

    Cat cat=new Cat();

    Cat:指 Cat 类,就像声明整型时的int一样 (int age;)
    cat:引用类型变量,也被简称为引用,就像int age;中的age一样,它是一个变量名,也叫对象名,但是一般都简称为“引用”(刚开始会听起来怪怪的,以后习惯就好了)
    new Cat();这就是一个对象(或者说是一个创建对象的语句)。这个引用的值不是一个像18一样的具体值,而是指向这个对象,例如:这个cat代表了这个小猫,而小猫是一个真实的个体(对象)。

    引用类型变量:
    1)引用类型变量可以存储该类对象的地址信息,通常称为“指向该类的对象”,当一个引用类型变量指向该类的对象,就可以通过这个变量对对象实施访问。
    2)除8种基本类型之外,用类、接口、数组等声明的变量都称为引用类型变量,简称“引用”。
    3)需要记住的是,只要出现new关键字,都是创建了一个对象!

    2)访问对象的成员变量,调用对象的方法

    我们之前就说过,类定义了一个事物的抽象特点,所以对象肯定是含有这些特点的,那我们怎么调用这些属性和方法。
    在面向对象中,我们使用 “.” 代表“…的”,也就是说我们要用引用点出这些属性和方法
    代码案例:

    public class CatTest(){
        public static void main(String[] args){
            Cat cat=new Cat();//创建一个Cat对象
            cat.name="小芳";// 访问这个对象的成员变量name,并给它赋值为"小芳"
            cat.age=3;// 访问这个对象的成员变量age,并给它赋值为3
            cat.cry(cat.name,cat.age);// 调用这个对象的方法cry,给它传值为这个对象的成员变量name和age
        }
    }

    运行结果如下:

    喵喵~
    我是小芳,我今年3岁了。

    3)引用类型变量的赋值

    引用类型变量存储的是对象的地址信息, 对引用类型变量的赋值, 除了使用上面的new关键字以外,还可以有另外一种赋值方式, 即:相同类型的引用类型变量之间相互赋值。
    代码案例:

    Cat cat1=new Cat();
    Cat cat2=cat1;

    代码分析:新建Cat类型变量cat1,使它指向一个新建对象,然后新建一个Cat类型变量cat2,然后把cat1赋值给cat2。

    需要注意的是:引用类型变量之间的赋值不会创建新的对象,但会使两个以上的引用指向同一个对象(两个引用指向的地址信息相同)。什么意思呢,就像我给这个小猫取个名字叫“玛丽”,然后再给它取个小名叫 “二蛋”,这个时候“玛丽”和“二蛋”都是指这只猫,如果“玛丽”的年龄增长1岁,那么“二蛋”的年龄肯定也增长一岁,所以如果多个引用指向一个对象,那么不管使用哪个引用对这个对象进行操作,都会影响所有对该对象的引用!

    代码案例:

    Cat cat1=new Cat();
    Cat cat2=cat1;
    Cat cat3=cat1;
    //这时3个引用都指向同一个对象
    cat1.age=4;
    cat3.age=5;
    System.out.println(cat1.age);
    System.out.println(cat1.age);
    System.out.println(cat1.age);

    运行结果:

    5
    5
    5

    4)null和NullPointerException

    如果在声明引用类型变量时没有给它赋值,则不能点出(调用)任何属性和方法,因为它并没有指向任何一个对象,就像是基本类型没有赋值一样。
    代码案例:

    Cat cat;

    此代码相当于

    Cat cat=null;

    此时如果想调用任何属性和方法会发生空指针异常(NullPointerException),异常我们后面会学到,在具体讲。
    OOP概念,

    展开全文
  • java面试题32:Java网络程序设计中,下列正确的描述是() A:Java网络编程API建立在Socket基础之上 B:Java网络接口只支持tcP以及其上层协议 C:Java网络接口只支持UDP以及其上层协议 D:Java网络接口支持IP...

    java面试题32:Java网络程序设计中,下列正确的描述是()

    A:Java网络编程API建立在Socket基础之上
    B:Java网络接口只支持tcP以及其上层协议
    C:Java网络接口只支持UDP以及其上层协议
    D:Java网络接口支持IP以上的所有高层协议

    蒙蔽树上蒙蔽果,蒙蔽树下你和我。不多说了,先看看网络编程。

    一、网络编程基础概念

    首先理清一个概念:网络编程不等于网站编程,网络编程即使用套接字来达到进程间通信,现在一般称为TCP/IP编程。

    计算机网络:

    把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便的互相传递信息,共享硬件,软件,数据信息等资源。

    计算机网络的主要功能:

        资源共享
        信息传输与集中处理
        均衡负荷与分布处理
        综合信息服务(www / 综合业务数字网络 ISDN)

    计算机网络三高问题: 高并发,高性能,高可用。

    计算机网络分类:

        局域网
        城域网
        广域网
        互联网
        等等…

    (Local Area Network;LAN) 通常我们常见的“LAN”就是指局域网,这是我们最常见、应用最广的一种网络
    二、网络通信协议及接口

    网络通信协议:

    计算机网络中实现通信必须有一些约定,即通信协议;包括对速率,传输代码,代码结构,传输控制步骤,出错控制等制定的标准。

    网络通信接口:

    为了使两个节点之间能进行对话,必须在他们之间建立通信工具(即接口),使彼此之间,能进行信息交换。接口包括两部分:

        硬件装置:实现结点之间的信息传送
        软件装置:规定双方进行通信的约定协议

    三、通信协议分层思想

    为什么要分层:

    由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式就是层次方式,及同层间可以通信,上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。

    通信协议的分层规定:

    把用户应用程序作为最高层,把物理通信线路作为最底层,将其间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。
    四、参考模型


    五、IP协议

        每个人的电脑都有一个独一无二的IP地址,这样互相通信时就不会传错信息了。

        IP地址是用一个点来分成四段的,在计算机内部IP地址是用四个字节来表示的,一个字节代表一段,每一个字节代表的数最大只能到达255。

    InetAddress类

    说到IP地址,就要引入一个类:InetAddress
    此类表示互联网协议 (IP) 地址。

    InetAddress类无构造方法

    常用方法摘要

    byte[] getAddress()
    返回此 InetAddress 对象的原始 IP 地址。
    static InetAddress getByName(String host)
    在给定主机名的情况下确定主机的 IP 地址。
    String getHostAddress()
    返回 IP 地址字符串(以文本表现形式)。
    String getHostName()
    获取此 IP 地址的主机名。
    static InetAddress getLocalHost()
    返回本地主机。
    127.0.0.1:本机地址,主要用于测试。别名:Localhost

    案例

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class TestIP {
        public static void main(String[] args) throws UnknownHostException {
            //InetAdress类表示IP地址
    
            //获取本机IP
            InetAddress ip = InetAddress.getLocalHost();
            System.out.println(ip);
            //获得主机名
            System.out.println(ip.getHostName());
            //获得IP地址
            System.out.println(ip.getHostAddress());
        }
    }

    案例二

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class TestIP2 {
        public static void main(String[] args) throws UnknownHostException {
            InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
            // 获取此 IP 地址的主机名。
            System.out.println(inetAddress.getHostName());
            //返回 IP 地址字符串(以文本表现形式)。
            System.out.println(inetAddress.getHostAddress());
        }
    }
    
    

    运行


    在这里插入图片描述
    六、端口

        IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,如何来区分这些不同的程序呢?这就要用到端口。
        端口是虚拟的概念,并不是说在主机上真的有若干个端口。
        通过端口,可以在一个主机上运行多个网络应用程序。端口的表示是一个16位的二进制整数,2个字节,对应十进制的0~65535。

    MySQL(3306),Oracle(1521),Tomcat(8080)等等程序都有自己的端口

    查看端口

        用命令提示符cmd查看所有端口:netstat -ano
        查看具体程序:使用任务管理器查看PID

    InetSocketAddress类

    说到端口,则要引入一个类:InetSocketAddress

    此类实现 IP 套接字地址(IP 地址 + 端口号)。

    构造方法摘要
    InetSocketAddress(InetAddress addr, int port)
    根据 IP 地址和端口号创建套接字地址。
    InetSocketAddress(int port)
    创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。
    InetSocketAddress(String hostname, int port)
    根据主机名和端口号创建套接字地址。
    常用方法摘要
    InetAddress getAddress()
    获取 InetAddress。
    String getHostName()
    获取 hostname。
    int getPort()
    获取端口号。

    案例

    import java.net.InetAddress;
    import java.net.InetSocketAddress;
    
    public class TestPort {
        public static void main(String[] args) {
            InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1",8082);
            System.out.println(inetSocketAddress.getHostName());
            //获得InetSocketAddress的端口
            System.out.println(inetSocketAddress.getPort());
            System.out.println(inetSocketAddress.getHostString());
            //返回一个InetAddress对象(IP对象)
            InetAddress address = inetSocketAddress.getAddress();
        }
    }
    
    

    七、URL

    URI=URL+URN

    URI:Uniform Resource Identifier ,统一资源标志符。
    URL:Uniform Resource Locator,统一资源定位符。
    URN:Uniform Resource Name,统一资源命名。

    网络三大基石:HTML,HTTP,URL
    URL

        在www上,每一信息资源都有统一且唯一的地址,即统一资源定位符。Uniform Resource Locator。
        如:https://localhost:8080/index.html ,有4部分组成。(协议,主机域名或IP,端口号,资源文件名)

    URL类

    构造方法摘要
    URL(String spec)
    根据 String 表示形式创建 URL 对象。
    URL(String protocol, String host, int port, String file)
    根据指定 protocol、host、port 号和 file 创建 URL 对象。
    URL(String protocol, String host, String file)
    根据指定的 protocol 名称、host 名称和 file 名称创建 URL。

    常用方法摘要
    String getAuthority()
    获取此 URL 的授权部分。
    int getDefaultPort()
    获取与此 URL 关联协议的默认端口号。
    String getFile()
    获取此 URL 的文件名。
    String getHost()
    获取此 URL 的主机名(如果适用)。
    String getPath()
    获取此 URL 的路径部分。
    int getPort()
    获取此 URL 的端口号。
    String getUserInfo()
    获取此 URL 的 userInfo 部分。

    案例

    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class TestURL {
        public static void main(String[] args) throws MalformedURLException {
    
            URL url2 = new URL("https://www.bilibili.com/");
            
            //获取此的授权部分 URL 。
            System.out.println(url2.getAuthority());
    
            //获取此 URL的文件名。
            System.out.println(url2.getFile());
    
            //获取端口
            System.out.println(url2.getPort());
    
            //获取主机
            System.out.println(url2.getHost());
    
            //获得默认端口
            System.out.println(url2.getDefaultPort());
    
            //获得路径
            System.out.println(url2.getPath());
    
            //获取该 URL的userInfo部分。
            System.out.println(url2.getUserInfo());
        }
    }
    
     

    小结:


    八、TCP协议和UDP协议

        TCP和UDP位于同一层,都是建立在IP层的基础之上。由于两台电脑之间有不同的IP地址,因此两台电脑就可以区分开来,也就可以互相通话了。
        通话一般有两种通话方式:第一种是TCP,第二种是UDP。
        TCP是可靠的连接,TCP就像打电话,需要先打通对方电话,等待对方有回应后才会跟对方继续说话,也就是一定要确认可以发信息以后才会把信息发出去。TCP上传任何东西都是可靠的,只要两台机器上建立起了连接,在本机上发送的数据就一定能传到对方的机器上。
        UDP就好比发电报,发出去就完事了,对方有没有接收到它都不管,所以UDP是不可靠的。
        TCP传送数据虽然可靠,但传送得比较慢;UDP传送数据不可靠,但是传送得快。

    UDP编程:

    需求:完成在线咨询功能,学生和老师在线一对一交流
    分析:

        使用基于UDP协议的Socket网络编程实现
        不需要利用IO流实现数据的传输
        每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中去寻找他的目的地,一切以包为中心。

    UDP基本概念:

        DatagramSocket:用于发送或接收数据包的套接字
        DatagramPacket:数据包

    实现

    接收方

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    public class PeopleOne {
        public static void main(String[] args) throws IOException {
            //1.开放一个端口
            DatagramSocket socket = new DatagramSocket(5051);
            //2.准备容器接收
            byte[] receiveBuf = new byte[100];
            //3.等待包裹容器封包
            DatagramPacket packet = new DatagramPacket(receiveBuf,receiveBuf.length);
            System.out.println("等你包裹来。。。。");
            while (true){
                //4.接收包裹
                socket.receive(packet);
                //5.解析包裹
                String receStr = new String(packet.getData(),0,packet.getLength());
                System.out.println("我收到了:"+receStr);
                if (receStr.equals("exit")){
                    break;
                }
            }
            //6.释放资源
            socket.close();
        }
    }

     

    发送方

    import java.io.IOException;
    import java.net.*;
    import java.util.Scanner;
    
    public class PeopleTwo {
        public static void main(String[] args) throws IOException {
            //1.指定一个端口进行发送
            DatagramSocket socket = new DatagramSocket();
            //2.指定一个IP
            InetAddress addr = InetAddress.getByName("127.0.0.1");
            int port = 5051;
            //3.准备一个小容器
            byte[] sendBuf;
            while (true){
                Scanner scanner = new Scanner(System.in);
                System.out.println("你要发什么东西:");
                String s = scanner.nextLine();
                //4.加入要放的数据
                sendBuf = s.getBytes();
                //5.数据打包
                DatagramPacket packet = new DatagramPacket(sendBuf,sendBuf.length,addr,port);
                //6.发送包
                socket.send(packet);
                if (s.equals("exit")){
                    break;
                }
            }
            //7.释放资源
            socket.close();
        }
    }

    运行
    在这里插入图片描述
    在这里插入图片描述
    TCP编程:

    需求:完成网络登录功能

        用户输入用户名密码,服务器给出登录成功或失败的提示

    分析:

        使用基于TCP协议的Socket网络编程实现
        TCP协议基于请求响应模式
        在网络通讯中,第一次主动发起通讯的程序被作为客户端程序
        第一次通讯中等待连接的程序被称作服务器程序
        利用IO流实现数据的传输

    实现

    服务器

    import java.io.DataInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TestServer {
    
        public static void main(String[] args) throws IOException {
            //服务器开启了一个监听端口
            ServerSocket serverSocket = new ServerSocket(6666);
            System.out.println("开启了服务器");
            while (true){
                //等待客户端连接
                Socket accept = serverSocket.accept();
                System.out.println("有一个人连接过来了");
                //获得客户端输入的东西
                InputStream inputStream = accept.getInputStream();
                //包装成DataInputStream流
                DataInputStream dataInputStream = new DataInputStream(inputStream);
                //通过流流读取消息
                String s = dataInputStream.readUTF();
                System.out.println(s);
            }
        }
    }

    客户端

    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    
    public class TestClient {
        public static void main(String[] args) throws IOException {
            //创建同一连接
            Socket s = new Socket("127.0.0.1",6666);
            DataOutputStream dos = new DataOutputStream(s.getOutputStream());
            dos.writeUTF("hello,world!");
        }
    }

    运行
    在这里插入图片描述
    九、Socket编程

    一般的网络编程都称为Socket编程,Socket的英文意思是“插座”。

    在这里插入图片描述

        两台电脑都安装上一个插座,然后使用一根线的两端插到两台电脑的插座上,这样两台电脑就建立好了连接。这个插座就是Socket。

        因为互相之间都能互相通信,我说你是我的Server只是从逻辑意义上来讲,我应该把东西先发到你那里去,然后由你来处理,转发。所以你叫Server。但从技术意义上来讲,只有TCP才会分Server和Client。对于UDP来说,从严格意义上来讲,并没有所谓的Server和Client。TCP的Server的插座就叫ServerSocket,Client的插座就叫Socket。

        两台计算机互相连接,那么首先必须得知道它们的IP地址,但是只提供IP地址是不够的,还必须要有连接的端口号,也就是要连接到哪个应用程序上。

        端口号是用来区分一台机器上不同的应用程序的。端口号在计算机内部是占2个字节。一台机器上最多有65536个端口号。一个应用程序可以占用多个端口号。端口号如果被一个应用程序占用了,那么其他的应用程序就无法再使用这个端口号了。记住一点,我们编写的程序要占用端口号的话占用1024以上的端口号,1024以下的端口号不要去占用,因为系统有可能会随时征用。端口号本身又分为TCP端口和UDP端口,TCP的8888端口和UDP的8888端口是完全不同的两个端口。TCP端口和UDP端口都有65536个。
    好像没啥评论,答案A,D,留给思考的你们。

    我是歌谣,今天刷题结束。不断积累,不断学习,共同交流,不多说了,代码走起来。

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期科技领域知识)

    歌谣带你看java面试题

    展开全文
  • 面向对象的几个基本概念

    千次阅读 2012-05-29 19:11:15
    面向对象中,多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态称为特定多态。... Peter Coad和Edward Yourdon提出了下列等式:  面向对象=对象(object)+类(classes)+继
            面向对象中,多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态称为特定多态。
     
           消息是发出的一个服务请求。
     
           究竟怎样才算是真正地“面向对象”(Object-Oriented,OO)? Peter Coad和Edward Yourdon提出了下列等式:
           面向对象=对象(object)+类(classes)+继承(inheritance)+消息通信(communication with messages)
           对象:对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的基本单位。
           对象三要素:对象标识、属性和服务。
     
           封装(encapsulation):是对象的一个重要原则。
           它有两层含义:
           第一:对象是全部属性和全部服务紧密结合而形成的一个不可分割的整体;
           第二:对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。
           类:对具有相同属性和服务的一个或一组对象的抽象。类与对象是抽象描述和具体实例的关系,一个具体的对象被称作类的一个实例。
     
           继承与泛化:继承是面向对象方法中重要的概念,用来说明特殊类(子类)与一般类(父类)的关系,通常使用泛化来说明一般类与特殊类之间的关系,它们之间是一对多的关系。
     
           多态性和重载:多态(即多种形式)性则是指一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为,通常是使用重载和改写两项技术来实现的。
           多态类型:重载(专用多态)、覆盖(包含多态)、多态变量(赋值多态、强制多态)、泛型(模板、参数多态)。
           重载(专用多态):描述一个函数名称有多种不同实现方式,通常可以在编译时基于类型签名来区分各个重载函数的名称。
           示例:
    class OverLoader{
        public void test(int x);
        public void test(int x,double y);
        public void test(string x);
    }
           覆盖(包含多态):是重载的一种特殊情况,只发生在父类和子类这一关系中。注:通常签名相同,内容不一样。
           示例:
    class Parent{
        public void test();
    }
    class Child extends Parent{
        public void test(int x);
    }
    
           多态变量(赋值多态、强制多态):声明为一种类型,但实际上却可以包含另一种类型数据的变量。
           示例:
    Parent p=new parent();
           泛型(模板、参数多态):它提供了一种创建通用工具的方法,可以在特定的场合将其特化。
           示例:
    template<class T> T max()
    {
        if(a<b) return b;
        return a;
    }
           消息和消息通信:消息是面向对象发出的服务请求,它通常包括提供服务的对象标识、消息名、输入信息和回答信息。消息通信则是面向对象方法学中的一个重要原则,它与对象的封装原则密不可分,为对象间提供了唯一合法的动态联系的途径。
     
           面向对象方法学的优点:
           1、与人类习惯的思维方法一致
           2、稳定性好
           3、可重用性好
           4、较易开发大型软件产品
           5、可维护性好
     
    展开全文
  • 使用面向对象概念表示出下面的生活场景: 小明去超市买东西,所有买到的东西都放在了购物车之中,最后到收银台一起结账。 先贴下代码,草草写的。 interface Goods{ //使用接口表示商品 public double...
  • Oracle 概念(Oracle 10.2)5、模式对象本章描述了用户模式中包含的不同类型的数据库对象。本章保安下列内容:u 模式对象介绍u 表概述u 视图概述u 实体化视图概述u 维度概述u 序列生成器概述u 同义词概述u...
  • Oracle 概念(Oracle 10.2)6、模式对象的依赖某些对象的定义引用了其他对象,比如视图和过程引用了表。因此,对象依赖于他们定义使用的对象。这一章描述了模式对象的依赖,以及Oracle如何自动跟踪和管理这种依赖...
  • C++面向对象的编程的理解

    千次阅读 2019-01-16 18:05:06
    本节主要介绍面向对象方法的优点以及它的一些基本概念。 2.3.1面向对象方法的优点(1)与人类习惯的思维方法一致。 长期以来,人与计算机之间仍存在着较大的隔阂,人认识问题时的认识空间和计算机处理问题时的方法...
  • java面向对象

    万次阅读 多人点赞 2018-08-21 16:51:59
    包括面向对象概念、类与对象的关系、封装、构造函数、this关键字、static关键字、单例设计模式、继承、多态、内部类、异常、包等java基础知识。 1、面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是...
  • 一、 名词解释引用内联函数重载函数【问题解答】所谓引用就是给...重载函数通常用来具有相似行为而数 据类型或数据个数不同的操作提供—个通用的名 称。二、 填空题(1) 一般情况下, 用 C++语言编写的程序是由 函...
  • 下面关于抽象概念描述中,不正确的是 A 计算机软件开发使用的抽象有过程抽象和数据抽象两种 B 过程抽象强调功能完成的过程和步骤 C 过程抽象按照功能将整个系统的不同部分抽象成不同的类 D 数据抽象的每个抽象...
  • 数据库 - 概念结构设计

    万次阅读 2015-05-08 10:15:46
    概念结构设计什么是概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定 概念结构设计是...
  • R语言面向对象指南

    千次阅读 2015-09-21 21:53:00
    原文链接:OO field guide 。 面向对象指南:这一章主要介绍怎样识别和使用 R 语言的面向对象系统(以下简称 OO)。R 语言主要有三种 OO 系统(加上基本类型)。本指南的目的不是让你精通 R ...根据类的输入不同,类
  • 数据结构基础概念

    万次阅读 多人点赞 2017-11-14 13:44:24
    数据结构一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据:所有能被输入到计算机中,且能...
  • 使用面向对象语言,离不开的就是对象,现在回过头来思考一下,真的了解所使用语言的对象么?我自己有点心虚,对于Java的对象,我了解的尚且还不够深入,对于一些底层的东西,还有待进一步了解学习。这一篇博文,来讲...
  • Teigha .dwg文件开发——基础概念

    千次阅读 2016-07-28 17:18:53
    1.一个工程制图文件,也就是drawing...其中容器主要包括下列:1.系统符号表,系统中有九张这样的表,不能改变表格的数量,但是你可以向表格里面添加内容 2.一个字典(Dictionaries),存储各种CAD对象的容器,你可以
  • 概念模型:真实世界中问题域内的事物的描述,不是软件设计的描述。 表示概念模型最常用的是“实体-关系”图,E-R图...物理模型:是真实数据库的描述,数据库中的一些对象如下:表、视图、字段、数据类型、长度...
  • 1、分布式对象包集成了面向对象的语言的特征和优点。能够使用户用类似面向对象的语言调用的层次上去实现远程的方法调用。 2、分布式对象有下面的一些优点:1、包装性。2、他将一个对象的实现和对象本身分离了。3、...
  • 面向对象

    千次阅读 2012-10-12 13:07:48
    1.1面向对象概念   “面向对象”是围绕现实世界中的概念来组织系统模型的一种崭新的思维方式,其基本构造是对象,这些对象把特定的数据以及与该数据相关的行为(或叫操作、方法)紧密的结合在一起组成单一实体...
  • 你好,我是前阿里手淘...一些新人在学习JavaScript面向对象时,往往也会有疑惑:为什么JavaScript(直到ES6)有对象概念,但是却没有像其他的语言那样,有类的概念呢?为什么在JavaScript对象里可以自由添加属性...
  •  (2分)成员函数非成员函数析构函数构造函数2-2下列对重载函数的描述中,( )是错误的。 (2分)重载函数中不允许使用默认参数重载函数中编译根据参数表进行选择不要使用重载函数来描述毫无相干的函数构造函数重载将...
  • 面向对象编程思想

    万次阅读 2014-06-24 21:18:46
    面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。 它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并...
  • AI:人工智能概念之《Google发布机器学习术语表 (中英对照)》——持续更新ML、DL相关概念2018年4月! 相关文章AI:人工智能概念之《Google发布机器学习术语表 (中英对照)》——持续更新ML、DL相关概念2018年4月...
  • 在程序设计中,需要思考的几个问题。 面向对象技术的特征。
  • C++中类与对象的讲解(通俗易懂)

    万次阅读 多人点赞 2016-07-14 20:09:45
    概念 描述 类成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。 类访问修饰符 类成员可以被定义为 public、private 或 protected。默认情况下是定义为 ...
  • Android OpenGL 显示基本图形及相关概念解读

    万次阅读 多人点赞 2016-07-28 08:48:34
    在Android中开发OpenGL程序非常简单,但是却有很多OpenGL相关概念是必须要清楚的,了解这些相关概念才能写出正确的代码,否则,你写出来的程序可能会无缘无故崩溃,或者是画出来的模型显示不出来等等问题。
  • Java实现面向对象编程

    万次阅读 2018-07-17 16:18:06
    1.1用面向对象设计电子宠物系统... 14 1.1.1为什么使用面向对象... 14 1.1.2使用面向对象进行设计... 15 1.2通过创建对象实现领养宠物功能... 17 1.2.1创建类的对象... 17 1.2.2构造方法及其重载... 23 1.2.3...
  • ResourceQuota对象用来定义某个命名空间下所有资源的使用限额,其实包括: 计算资源的配额 存储资源的配额 对象数量的配额 如果集群的总容量小于命名空间的配额总额,可能会产生资源竞争。这时会按照先到先得来...
  • 面向功能的程序设计方法、结构化程序设计方法、面向数据流的处理方式与结构化分析(Structrued Analysis,即SA)、结构化编程... 面向对象程序分析(OOA)、面向对象程序设计(OOD)、面向对象程序开发(OOP)
  • DDD之实体与值对象区别

    千次阅读 2020-02-13 16:20:45
    实体 值对象

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,046
精华内容 20,018
关键字:

下列对对象概念描述