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

    千次阅读 2020-06-30 16:56:24
    1. 面向对象程序设计的基本概念 Java是一种面向对象的编程语言。面向对象编程,英文是Object-Oriented Programming,简称OOP。 那什么是面向对象编程? 面向对象其实是现实世界模型的自然延伸。可以将现实世界中的...

    原文链接:面向对象设计—类和对象**

    1. 面向对象程序设计的基本概念

    Java是一种面向对象的编程语言。面向对象编程,英文是Object-Oriented Programming,简称OOP。

    那什么是面向对象编程?

    面向对象其实是现实世界模型的自然延伸。可以将现实世界中的任何实体都看做是对象,对象之间通过消息相互作用。另外,现实世界中的任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心、以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据,面向对象编程语言为:程序=对象+消息。

    所有的面向对象编程语言都支持3个概念,即封装、多态性和继承。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。

    所谓封装,就是用一个自主式框架把对象的数据和方法连在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。类描述了一组有相同特性(属性)和相同行为(方法)的对象。在程序中,类实际上就是数据类型,例如整数、小数等。整数也有一组特性和行为。面向过程的语言与面向对象的语言的区别就在于,面向过程的语言不允许程序员自己定义数据类型,而只能使用程序中内置的数据类型。而为了模拟真实世界,为了更好地解决问题,我们往往需要创建解决问题所必需的数据类型。

    接下来我们讨论以下几个词的具体概念:

    • 对象
    • 封装性
    • 继承性
    • 多态性

    2. 类与对象

    对象

    现在举个例子,比如现在由一辆汽车,汽车的外观是红色,并由发动机、方向盘、轮胎等组成,并且汽车可以行驶在马路上。如果将汽车搬到Java语言中,汽车就是一个对象,外观、发动机、方向盘、轮胎都属于汽车对象的属性,行驶的动作就是汽车对象的方法。

    综上所述,对象的特征分为静态特征动态特征两种。静态特征指对象的外观、性质、属性等,动态特征指对象具有的功能、行为等。

    人们将对象的静态特征抽象为属性,用数据来描述,在Java语言中称之为变量;人们将对象的动态特征抽象为行为,用一组代码来表示,完成对数据的操作,在Java语言中称之为方法。一个对象由一组属性和一组对属性进行操作的方法构成。

    将具有相同属性及相同行为的一组对象称为类。广义地讲,具有共同性质的事物的集合就称为类。比如我们现实世界中汽车就属于一个类。那么具体的某一辆汽车属于汽车对象。

    类的声明与创建

    类声明

    语法:

    class 类名称
    {
    //类的成员变量
    //类的方法
    }
    

    实例:

    // 声明车类
    class Car{
        // 成员变量
        String color;
        
        // 类变量
        public static int count = 0;
        
        // 类方法
        public void drive(){
            // 局部变量
            int speed = 10;
            System.out.println("驾驶");
        }
        
    }
    

    一个类可以包含以下类型变量:

    • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
    • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
    • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
    构造方法

    每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。

    在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

    实例:

    // 声明车类
    class Car{
        // 成员变量
        String color;
        
        //默认构造方法
        public Car(){}
        
        public Car(String color){
        	this.color = color;
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
        }
        
    }
    
    创建对象

    对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:

    • 声明:声明一个对象,包括对象名称和对象类型。
    • 实例化:使用关键字 new 来创建一个对象。
    • 初始化:使用 new 创建对象时,会调用构造方法初始化对象。

    实例:

    // 声明车类
    public class Car{
        // 成员变量
        String color;
        
        //默认构造方法
        public Car(){
            System.out.println("默认构造方法被调用");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
        }
        
        public static void main(String[] args){
            // 创建对象并使用 , 实例化的时候会调用对应的构造方法
            Car car = new Car();
            car.color = "红色";
            car.drive();
        }
    }
    
    对象使用

    如果要访问对象里的某个成员变量或方法,可以通过下面的语法来实现。

    • 访问属性:对象名称.属性名
    • 访问方法:对象名称.方法名()
    对象比较

    有两种方式可用于对象间的比较,即“= =”运算符与equals()方法。“= =”运算符用于比较两个对象的内存地址值是否相等,equals()方法用于比较两个对象的内容是否一致。

    // 声明车类
    public class Car{
        // 成员变量
        String color;
        
        //默认构造方法
        public Car(){
            System.out.println("默认构造方法被调用");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
        }
        
        public static void main(String[] args){
            Car car1 = new Car();
            Car car2 = new Car();
            Car car3 = car1;
            
            System.out.println(car1 == car3);
            System.out.println(car1.equals(car2));
        }
    }
    
    对象数组

    在前面已介绍过如何以数组来保存基本数据类型的变量。相同的,对象也可以用数组来存放,可通过下面两个步骤来实现。
    (1) 声明类类型的数组变量,并用new分配内存空间给数组。
    (2) 用new产生新的对象,并分配内存空间给它。

    // 建立Car的数组
    Car[] car = new Car[3]; // 声明Car数组并分配内存空间
    
    // 将对象指向数组对应位置
    car[0] = new Car();
    car[1] = new Car();
    car[2] = new Car();
    

    方法

    方法定义

    所有的方法均在类中声明。定义方法的一般形式如下。

    修饰符 返回类型 方法名(参数列表) {
    	//方法主体
        return 方法返回值;
    }
    

    方法返回值通过return语句实现,如果没有返回值,返回类型设置为void,可以省略return

    private方法

    public方法,自然就有private方法。和private字段一样,private方法不允许外部调用,那我们定义private方法有什么用?

    定义private方法的理由是内部方法是可以调用private方法的。例如:

    // 声明车类
    public class Car{
        // 成员变量
        String color;
        
        //默认构造方法
        public Car(){
            System.out.println("默认构造方法被调用");
        }
        
        /**
         * 车辆发电不需要外部操作,自己内部就可以进行
         */
        private void generateElectricity(){
            System.out.println("自动发电");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
            // 车辆启动行驶过程中就会发电
            generateElectricity();
        }
    
    }
    
    this变量

    在方法内部,可以使用一个隐含的变量this,它始终指向当前实例。因此,通过this.field就可以访问当前实例的字段。

    如果没有命名冲突,可以省略this。例如:

    // 声明车类
    public class Car{
        // 成员变量
        String color;
        
        //默认构造方法
        public Car(String color){
            this.color = color;
        }
        
        private void generateElectricity(){
            System.out.println("自动发电");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
            // 车辆启动行驶过程中就会发电
            this.generateElectricity();
        }
    }
    
    方法参数

    方法可以包含0个或任意个参数。方法参数用于接收传递给方法的变量值。调用方法时,必须严格按照参数的定义一一传递。例如:

    // 声明车类
    public class Car{
        
        /**
         * 车辆发电不需要外部操作,自己内部就可以进行
         * @param gasoline 汽油
         */
        private void generateElectricity(String gasoline){
            System.out.println("自动发电");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
            // 车辆启动行驶过程中就会发电
            this.generateElectricity("汽油");
        }
    }
    

    generateElectricity带有一个参数gasoline,调用的时候也需要传递一个参数,如果发电还需要汽油的数量,那么可以这么写:

    // 声明车类
    public class Car{
        
        /**
         * 车辆发电不需要外部操作,自己内部就可以进行
         * @param gasoline 汽油
         * @param count 油量
         */
        private void generateElectricity(String gasoline,int count){
            System.out.println("自动发电");
        }
        
        // 类方法
        public void drive(){
            System.out.println("驾驶");
            // 车辆启动行驶过程中就会发电
            this.generateElectricity("汽油",10);
        }
    }
    
    可变参数

    可变参数用类型...定义,可变参数相当于数组类型:

    public class Car{
        String[] addrArray;
        
        // 汽车导航,需要多个地址
        private void navigation(String... addr){
            System.out.println("导航");
            this.addrArray = addr;
        }
        
    }
    

    深入探讨可以加笔者QQ:1120855315
    点击获取免费Java免费视频
    添加QQ群837949026可以领取更多学习资料

    展开全文
  • Python面向对象练习题汇总

    千次阅读 多人点赞 2020-07-29 17:34:32
    类:一类事物的描述,是抽象的、概念上的定义。 对象:实际存在的该类事物的每个个体,因而也称实例(instance) 类是对象的抽象,对象是类的实例。 2. python中如何定义一个类的格式 class 类名(object): 成员...

    1. 什么是类,什么是对象?

    • 类:对一类事物的描述,是抽象的、概念上的定义。
    • 对象:实际存在的该类事物的每个个体,因而也称实例(instance)。

    类是对象的抽象,对象是类的实例。

    2. python中如何定义一个类的格式

    class 类名(object):
        成员(方法)
    

    3. 类(class)由哪三个部分构成

    类名,属性,方法。

    4. 类名的命名规则是什么

    要遵循标识符的命名规范,尽量使用大驼峰命名法,命名时做到“见名思意”。

    5. python中如何通过类创建对象

    对象名 = 类名()
    

    6. 定义一个Person类,使用Person类,创建一个mayun对象后,添加company属性,值是"阿里巴巴";创建一个wangjianlin对象,添加company属性,值是"万达集团"

    # Person类
    class Person(object):
        pass
    
    
    # mayun对象
    mayan = Person()
    mayan.company = "阿里巴巴"
    
    # wangjianlin对象
    wangjianlin = Person()
    mayan.company = "万达集团"
    

    7. 定义一个水果类,然后通过水果类,创建苹果对象、橘子对象、西瓜对象并分别添加上颜色属性

    # 水果类
    class Fruits(object):
        pass
    
    # 苹果对象
    apple = Fruits()
    apple.color = "red"
    
    # 橘子对象
    tangerine = Fruits()
    tangerine.color = "orange"
    
    # 西瓜对象
    watermelon = Fruits()
    watermelon.color = "green"
    

    8. __init__方法有什么作用,如何定义

    __init__方法用来监听对象的实例过程。

    def __init__(self):
        pass
    

    9. __str__方法有什么作用,使用时应注意什么问题

    __str__方法用来追踪对象的属性值的变化的。

    • __str__方法不能再添加任何参数,
    • __str__方法必须有一个返回值,返回值必须为字符串类型。

    10. 方法中的"self"代表什么

    self代表的是类的实例对象(注意不是类本身)。

    11. 定义一个汽车类,并在类中定义一个move方法,然后分别创建BMW_X9、AUDI_A9对象,并添加颜色、马力、型号等属性,然后分别打印出属性值、调用move方法(使用__init__方法完成属性赋值)

    # 汽车类
    class Car(object):
        def __init__(self, color, speed, type):
            self.color = color
            self.speed = speed
            self.type = type
        def move(self):
            print("汽车开始跑了")
    
    
    # BMW_X9对象
    BMW_X9 = Car("red", 80, "F4")
    print(BMW_X9.color, BMW_X9.speed, BMW_X9.type)
    BMW_X9.move()
    
    # AUDI_A9对象
    AUDI_A9 = Car("black", 100, "S3")
    print(AUDI_A9.color, AUDI_A9.speed, AUDI_A9.type)
    AUDI_A9.move()
    

    12. 将身边的一个事物抽象出一个类。比如老师、学生、桌子、椅子、苹果、香蕉、枕头、被子或任意物品

    • 提供基本属性、基本的方法。
    • 通过类创建出几个不同的对象。
    • 打印它们的属性、调用它们的方法。
    # Person类
    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
        def play(self):
            print("我可以玩")
    
    
    # Article类
    class Article(object):
        def __init__(self, width, height):
            self.width = width
            self.height = height
        def func(self):
            print("我可以放东西")
    
    
    # Article类
    class Fruits(object):
        def __init__(self, color, weight):
            self.color = color
            self.weight = weight
        def eat(self):
            print("我可以被吃")
    
    
    # lisi
    lisi = Person("李思", 18)
    print(lisi.name, lisi.age)
    lisi.play()
    
    # desk
    desk = Article(80, 100)
    print(desk.width, desk.height)
    desk.func()
    
    # apple
    apple = Fruits("red", 10)
    print(apple.color, apple.weight)
    apple.eat()
    

    13. 要修改一个对象的属性有几种方法,分别是什么?

    • 直接修改属性的值。
    • 通过方法修改属性的值。
    • 通过方法对属性的值进行递增/减。

    14. 保护属性安全性的一般处理方式是什么?

    把这个属性设置为私有的,通过一些封装的方法进行操作。

    15. 要想将一个属性私有化,该怎么做?

    在属性名前面加上两个下划线,即:__属性名

    16. 定义一个People类,其中要有类的初始化函数(带参数name)

    # Person类
    class Person(object):
        def __init__(self, name):
            self.name = name
    

    17. 如何将上述的name改成私有属性

    self.__name = name
    

    18. 如果子类中没有定义init方法,但是要实例化一个对象,那此时会调用父类的构造方法吗?

    如果本身没有定义init方法,会调用直接继承给它的第一个父类的init方法。

    19. 简单描述什么是单继承

    一个子类只能有一个父类,被称为单继承。

    20. 如果子类重写了init方法,那么在实例化对象的时候,你觉得会调用哪个构造方法,是父类的还是子类的?

    子类重写了init方法,默认会调用自己的。

    21. 当子类重写init方法,在实例化对象的时候,如果想要调用父类的init方法该怎么办?

    需要显示进行调用,即:super().__init__()

    22. 定义一个类,提供可以重新设置私有属性name的方法,限制条件为字符串长度小于10,才可以修改。

    # Person类
    class Person(object):
        def __init__(self):
            self.__name = ""
            
        def set_name(self, name):
            if len(name) < 10:
                self.__name = name
    

    23. 在一个对象销毁的时候,可以在什么函数释放资源?

    通过魔法方法,__del__

    24. 简单描述什么是多继承

    一个子类可以有多个父类,称为多继承。

    25. 简单描述什么是重写?

    子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

    展开全文
  • 定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。
  • 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面试题

    展开全文
  • 28、(多选题)下列对Java语言的叙述中,正确的是() A.Java虚拟机解释执行字节码 B.Java的类是具有相同行为对象的一种抽象 C.Java中的垃圾回收机制是一个系统级的线程 D.JDK的库文件目录是bin 【正确答案】A,B,C ...
  • C++面向对象的编程的理解

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

    千次阅读 2019-09-30 11:42:09
    1.下列不属于面向对象编程的特性的是(C )。 A.封装 B.继承 C.抽象 D.多态 2.(*)下述概念中不属于面向对象的是(D)。 A.对象 B.继承、多态 C.类、封装 D.过程调用 ...
  • 使用面向对象语言,离不开的就是对象,现在回过头来思考一下,真的了解所使用语言的对象么?我自己有点心虚,对于Java的对象,我了解的尚且还不够深入,对于一些底层的东西,还有待进一步了解学习。这一篇博文,来讲...
  • 可以使用这些对象标记语言文档进行CRUD(增删改查)的动态操作。 通过 HTML DOM(如图所示),可访问 JavaScript HTML 文档的所有元素。 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object ...
  • 面向对象期末测试题(带答案).doc

    千次阅读 2021-03-13 02:28:21
    面向对象期末测试题(带答案)济南大学2009~2010 学年第二学期课程考试试卷课 程 java面向对象程序设计 授课教师考试时间 考试班级学 号 姓 名题号一二三四五总 分审核人得分一、填空题(每空2分,共20分)1.Java源...
  • 编译程序要程序进行正确的翻译,首先要程序设计语言本身进行精确地定义和描述语言的描述是从三个方面来考虑(精简地说): 语法:是语言结构的定义(什么样的符号序列是合法的);定义语言的词法和语法的...
  • 【判断题】元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。 (5.0分)【填空题】Python源代码程序编译后的文件扩展名为_________ (5.0分...
  • 计算机存储的发展(块存储,文件存储,对象存储)

    万次阅读 多人点赞 2018-09-15 15:04:08
    对象存储 1、对象 2、对象存储设备 3、元数据服务器(Metadata Server,MDS) 4、对象存储系统的客户端Client 三者之间异同比较 参考文献 如果要实现一个计算机,那么这个计算机一定要有以下的三个部分构成:...
  • Java面向对象练习题含解析(三)

    万次阅读 多人点赞 2021-04-07 20:30:11
    27、下列关于类和对象的说法中,错误的是() A、类用于描述多个对象的共同特征,它是对象的模板 B、类在Java中是一个可有可无的概念 C、对象是类的具体化,一个类可以对应多个对象 D、类是事物的抽象描述对象...
  • 错误的是在工业企业综合生产计划工作中,品种指标的优化可采用A:销售收入和利润分析法B:线性规划法C:销售人员意见综合法D:盈亏平衡分析法下面静态数据成员的描述中,正确的是A:类的每个对象都有自己的静态数据...
  • 四、软件体系结构描述

    千次阅读 2020-04-02 23:05:05
    软件体系结构描述方法 描述方法的种类: 非形式化→形式化→ 标准化 图形表达工具 采用由矩形框和有向线段组合而成的图形表达工具。 矩形表示抽象构件 框内文字为抽象构件的名称 有向线段代表辅助各构件进行通信、...
  • 算法的基本概念

    千次阅读 2019-07-19 11:28:52
    算法是特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。具有以下性质: 1.有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成 2.确定性:算法中...
  • JAVA OOP(一)——OOP概念,类与对象

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

    万次阅读 多人点赞 2018-08-21 16:51:59
    包括面向对象概念、类与对象的关系、封装、构造函数、this关键字、static关键字、单例设计模式、继承、多态、内部类、异常、包等java基础知识。 1、面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是...
  • Java面向对象 - 类与对象

    千次阅读 多人点赞 2021-01-16 10:07:03
    类:类是一个模板,它描述一类对象的行为和属性。 对象对象是类的一个实例,有 属性 和 行为 。 举个例子: 人是一个 “类”,小明就是人的 “对象” ,女生/男生是一个类,你的女朋友/男朋友就是一个对象,这个...
  • 数据库 - 概念结构设计

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

    千次阅读 2021-04-09 19:29:34
    JAVA基础-面型对象测试题 一.选择题 1. 随着Java技术的不断发展,oracle公司根据市场进一步将Java细分,其中针对普通PC应用的是( D) A. JAVAEE B. JDK C. JAVAME D. JAVASE 2. 编译java源代码使用以下哪个命令? ...
  • 面向对象复习总结

    千次阅读 2016-12-07 21:11:27
    问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界。 构造出模块化的、可重用的、维护性好的软件,同时限制...
  • 目录 第 4 章 Java面向对象程序设计 一.单项选择题 二. 填空题 三.简答题 四.程序阅读题 ...五....一....A....B....C....D....2.下列不属于面向对象编程的三个特征的是 A.封装 B.指针操作 C.多态性 D.继承 3....
  • C++提高编程(四)—— STL函数对象

    千次阅读 2021-04-14 18:18:08
    1. 函数对象1.1 函数对象概念1.2 函数对象使用2. 谓词2.1 谓词概念2.2 一元谓词2.3 二元谓词3. 内建函数对象3.1 内建函数对象意义3.2 算术仿函数3.3 关系仿函数3.4 逻辑仿函数 1. 函数对象 1.1 函数对象概念   ...
  • 为方便起见,我们使用术语邻近度(proximity)表示相似...名词概念解释 定义: 两个对象之间的相似度(similarity)的非正式定义是这两个对象相似程度的数值度量。通常,相似度是非负的,并常常在 0 (不相似)和...
  • UML--状态图的基本概念和作用

    万次阅读 多人点赞 2019-10-27 19:36:49
    状态机是一种记录下给定时刻状态的设备,它可以根据各种不同的输入每个给定的变化改变其状态或引发一个动作。比如:计算机操作系统中的进程调度和缓冲区调度都是一个状态机。 在UML中,状态机由对象的各个状态和...
  • 一间宿舍可以住多个学生,以下选项中描述了实体宿舍和学生之间联系的是 一一 一多 多一 多多 11. 以下选项中不是Python文件读操作方法的是 read readline readall readtext 12. 以下选项中说法不正确的是 ...
  • JAVA面向对象程序设计

    2009-03-21 21:22:11
    一、编写一个应用程序,实现下列要求: 1.描述一个接口,其中含有一个求面积的方法 2.描述三角形类,且实现上述接口 3.采用继承描述直角三角形类,增加求弦长的方法, 并重写求面积的方法 4.创建有关对象,验证程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,222
精华内容 22,488
关键字:

下列对对象概念描述