精华内容
下载资源
问答
  • 下列关于对象概念的描述中
    千次阅读
    2020-02-27 23:18:49
    ​1.数据:描述客观事物的数字、字符以及能输入机器且被处理的各种符号的集合。    ​
    2.数据元素:数据元素是组成数据的基本单位,通常称为记录。    ​
    3.数据项:不可分割的最小单位,具有独立含义。    ​
    4.数据对象:性质相同的数据元素的集合,是数据的一个子集。    
    ​5.数据结构:指相互之间存在一种或多种特定关系的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。通常有:表结构、树形结构、图形结构。    ​
    6.逻辑结构:人的大脑想像,可以画在纸上,比如具有线性表结构、空关系、树型结构、图型结构。例如可以把逻辑结构用物理结构(比如顺序存储)在计算机中存储起来。  
    (1)逻辑结构分为线性结构和非线性结构俩大类。(主要分为这俩大类)
    (2)同时也可以分为空关系,表结构,树型结构,图型结构四大类。
    线性结构就是一对一关系,非线性结构就是一对多关系(树型,图型)。
    
    更多相关内容
  • 以下关于Python缩进的描述中,错误的是在工业企业综合生产计划工作中,对品种指标的优化可采用A:销售收入和利润分析法B:线性规划法C:销售人员意见综合法D:盈亏平衡分析法下面对静态数据成员的描述中,正确的是A:类的...

    以下关于Python缩进的描述中,错误的是

    在工业企业综合生产计划工作中,对品种指标的优化可采用A:销售收入和利润分析法B:线性规划法C:销售人员意见综合法D:盈亏平衡分析法

    下面对静态数据成员的描述中,正确的是A:类的每个对象都有自己的静态数据成员B:静态数据成员不能通过类的对象调用只能通过“类名::标识符”调用C:静态数据成员是类的所有对象共享的数据D:类的不同对象有不同的静态数据成员

    在PSpiceA/D交流分析的ACSweep/Noise设置中,选用对数坐标,起点可以从0Hz开始。()A:错B:对

    依据装卸搬运设备作业原理,装卸搬运设备可以分为()。A:滚上滚下和移上移下B:叉上叉下C:吊上吊下D:散装散卸

    米芾()评:"智永临集千文,秀润圆劲,八面具备"。A:《画禅室随笔》B:《海岳名言》C:《广艺舟双楫》D:《书史》

    对单纯疱疹病毒性脑炎的临床预后无影响的是()A:免疫治疗是否得当B:脑脊液中的病毒数量C:诊断、治疗是否及时D:抗病物的疗程是否足够E:对症支持处理是否完善

    以下哪些是经理支持系统的功能A:提供在线状态的获得具备数据分析能力B:支持对总结性数据背后细节和数据的获得C:提供趋势分析及例外报告D:抽取压缩和跟踪关键数据

    企业在国际市场定价中的目标有多个,下列哪些不属于它们的目标?A:增加利润B:实现投资收益率C:扩大市场份额D:增加知名度

    质量为m的小球,在水中受到的浮力大小恒为A:B:C:D:

    5G基站的功能组成被重构为以下哪几个功能实体?A:DUB:CUC:AAUD:RRU

    立式磨的优点是()。A:入磨物料粒度大B:物料在磨内停留时间短C:可利用各种窑炉的废热气烘干物料D:入磨物料粒度小

    连锁与互换的细胞学基础:是第一次成熟分裂前期所发生的同源染色体联会与非姊妹染色单体的交叉互换。A:对B:错

    下列不是营销组合4P的是()。A:渠道B:需要C:定价D:产品

    决明子的主治证是A:肝火头痛B:肠燥便秘C:热淋涩痛D:目赤肿痛E:瘰疬瘿瘤

    在一个具有n个顶点的无向连通图中至少有()条边。A:nB:n/2C:n-1D:n+1

    水由敞口恒液位的高位槽通过一管道流向压力恒定的反应器,当管道上的阀门开度减小后,管道总阻力损失()A:C、不变B:D、不能判断C:B、减小D:A、增大

    用万用表R×1K挡或R×10KA:对B:错

    ()是指个体接触新的社会情境时,总是按照以往经验,将情境中的人或事进行归类所形成的关于人或事物的概念,是社会知觉的结果。A:想象B:感觉C:知觉D:印象

    蜗杆传动中,轮齿承载能力的计算主要针对()来进行。A:蜗轮齿面接触强度和齿根弯曲强度B:蜗杆齿面接触强度和齿根弯曲强度C:蜗杆齿面接触强度和蜗轮齿根弯曲强度D:蜗轮齿面接触强度和蜗杆齿根弯曲强度

    以下哪个不属于是人体9大系统:A:泌尿系统B:运动系统C:消化系统D:免疫系统

    土地资源分布不平衡,土地生产能力的地区差别显著,可分为A:东南季风区B:西北内陆区C:青藏高原区

    “99%的人,都败给了这一个字”这个标题最大的问题在于,标题内没有任何与业务相关的关键词。A:错B:对

    分析数字电路的功能的工具有(&nA:波形图B:逻辑表达式C:逻辑状态表D:逻辑代数

    文本组件类有以下哪个()。A:WindowB:JTextAreaC:JTextFieldD:JButton

    文字的层级关系一般是指版面中文字的大小和色度强弱所形成的由主到次、由近及远、由强到弱的视觉关系,也是一种阅读导向和顺序。A:对B:错

    ,对变量的描述正确的是:A:变量是公有变量B:变量是私有变量C:变量是公有变量D:变量是公有变量

    在记账无误的情况下,银行对账单与企业银行存款日记账账面余额不一致的原因是()A:在途货币资金B:应付款C:未达账项D:外均存款

    微机组装完成,加电开机后提示找不到引导盘,不可能是()。A:硬盘自身故障B:主板CMOS硬盘有关参数的设置错误C:显示器连接不良D:硬盘连接不良

    可以作为决定系数的值的是()。A:πB:1.5C:√2D:-0.5

    下列关于负反馈调节的叙述,错误的是A:是维持内环境稳态的重要调节形式B:与神经调节和体液调节无关C:是一个闭环系统D:反馈信号能减弱控制部分的活动E:反馈信息与控制信息的作用性质相反

    减肥计划模型属于哪类模型?A:代数方程模型B:稳定性模型C:优化模型D:微分方程模型

    常见的封闭抗体的类型有A:抗Fc受体抗体B:抗TLX抗体C:抗冷B细胞抗体D:抗HLA-D/DR抗体

    常与曲池穴相配治疗荨麻疹的穴位是:A:箕门B:风市C:阴陵泉D:地机E:血海

    蒸发温度不变的情况下,升高冷凝温度可以提高制冷系数。A:对B:错

    菊科植物主要分布于温带,热带较少,是药用种类最多的科,菊科植物的化学成分的复杂性和多样性均居植物界之首。A:对B:错

    采购到货单A:对B:错

    由曲线及A:B:C:D:

    当代海洋问题是局部问题,个别问题。A:错B:对

    以下测量方法中,测距精度高而且速度快的是()。A:钢尺量距B:视距仪测距C:电磁波测距D:目估

    大学男生穿紧身裤最好用长款上衣来遮挡一下。A:错B:对

    原核生物的肽链延伸过程有下列哪些物质不用参与()。A:鸟苷三磷酸B:EF-Tu、EF-Ts、EF-GC:肽基转移酶D:甲酰甲硫氨酰-tRNA

    运动技能是在大脑皮质指挥下由骨骼肌参与的非随意运动。A:错B:对

    梁的最大挠度必产生于最大弯矩处。()A:错B:对

    从病毒体进入易感细胞到子代病毒生成并释放这一过程称为一个复制周期()A:错B:对

    在DW检验中,当DW统计量为2时,下面哪些说法是正确的?()A:存在完全负自相关B:不能判定C:存在完全正自相关D:不存在自相关

    扣件式钢管脚手架中常用的扣件有:()A:插销B:对接扣件C:旋转扣件D:直角扣件

    意见性问题主要是想A:对B:错

    展开全文
  • 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面试题

    展开全文
  • 面向对象程序设计的基本概念

    千次阅读 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可以领取更多学习资料

    展开全文
  • Java面向对象练习题含解析(三)

    万次阅读 多人点赞 2021-04-07 20:30:11
    8、下列关于静态方法的描述中,错误的是( ) A、静态方法指的是被static关键字修饰的方法 B、静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间 C、静态方法内可以使用this关键字 D、静态方法内部...
  • java题库2

    千次阅读 2021-03-13 17:20:42
    5、Java( C )。...** 不需定义类,就能创建对象属性可以是简单变量,也可以是一个对象 属性必须是简单变量 对象中必有属性和方法7、下面关键字哪一个是不可用来控制对类成员的访问( A )。 p...
  • 原标题:模拟试卷C【单项选择题】1. 按照“后进先出”原则组织数据的数据结构是____队列栈双向链表二叉树2. 以下选项的叙述,正确的是循环队列有队头和队尾两个指针,因此,... 关于数据的逻辑结构,以下选项...
  • 28、(多选题)下列对Java语言的叙述,正确的是() A.Java虚拟机解释执行字节码 B.Java的类是对具有相同行为对象的一种抽象 C.Java的垃圾回收机制是一个系统级的线程 D.JDK的库文件目录是bin 【正确答案】A,B,C ...
  • 定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。
  • 22、(单选题)在Java,以下描述错误的是( ) A…class是源文件 B…java是编译前的源文件 C…class是编译后的文件 D.Java程序需编译后方可运行 【正确答案】A 【答案解析】此题目考查的是Java程序的开发过程。Java...
  • python-0-测试题

    千次阅读 2020-11-24 13:17:14
    一、选择题1、关于python内存管理,下列说法错误的是:(D)A - 变量不必事先声明B - 可以使用del释放资源C - 变量无须指定类型D - 变量无须先创建和赋值而直接使用python当中的垃圾回收算法是采用引用计数,当一个...
  • python开发工程师考证试题选择题题目关于 Python 程序格式框架的描述,以下选项错误的是 ( A )A: Python 语言不采用严格的“缩进”来表明程序的格式框架B: Python 单层缩进代码属于之前最邻近的一行非缩进代码,...
  • 关于依赖注入,描述正确的是(BC)

    千次阅读 2020-08-04 22:15:24
    D、Spring的依赖注入和控制反转是完全不同的两个概念 2、(多) 对于Spring的AOP的实现方式下列选项说法错误的是(AD) d A、Spring的Advice采用特定的aop语言,在定义pointcuts不可以使用配置文件 B、以实现接口的方式...
  • 1.UML的全称是 ( B ) (A)Unify Modeling Language (B)Unified Modeling Language (C)Unified Modem Language (D)Unified Making Language 2.执行者(Actor)与...4.在类图,“ #”表示的可见性是( B
  • 展开全部答案:ABCFJava 抽象类在面向对象概念中,所有的对象都是通过类来32313133353236313431303231363533e58685e5aeb931333431343036描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类没有...
  • 对象池的介绍与使用

    千次阅读 2021-04-28 20:47:37
    当需要创建对象时,先在池子获取,如果池子没有符合条件的对象,再进行创建新对象,同样,当对象需要销毁时,不做真正的销毁,而是将其setActive(false),并存入池子。这样就避免了大量对象的创建。 2. 对象池...
  • 数据库 - 概念结构设计

    万次阅读 2015-05-08 10:15:46
    概念结构设计什么是概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定 概念结构设计是...
  • 使用面向对象语言,离不开的就是对象,现在回过头来思考一下,真的了解所使用语言的对象么?我自己有点心虚,对于Java的对象...要计算Java对象占用内存的大小,首先需要了解Java对象在内存的实际存储方式和存储格式。
  • 目录 第 4 章 Java面向对象程序设计 一.... 二.... 三....四....五....一....1.以下关于继承的叙述正确的是( )。...A. 在Java类只允许单一...2.下列不属于面向对象编程的三个特征的是 A.封装 B.指针操作 C.多态性 D.继承 3....
  • 学好Python这门编程语言,需要有稳固的基础才行。练习是最重要的部分,当然对应的概念也必须要有所了解,尤其是参加Python二级考试的人。
  • 面向对象复习总结

    千次阅读 2016-12-07 21:11:27
    强调直接以问题域(现实世界)的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域事物及其相互...
  • python二级考试试题.docx

    千次阅读 2020-11-24 03:16:57
    关于算法的描述,以下选项错误的是A算法具有可行性、确定性、有穷性的基本特征B算法的复杂度主要包括时间复杂度和数据复杂度C算法的基本要素包括数据对象的运算和操作及算法的控制结构D算法是指解题方案的准确而...
  • 面向对象期末测试题(带答案).doc

    千次阅读 2021-03-13 02:28:21
    面向对象期末测试题(带答案)济南大学2009~2010 学年第二学期课程考试试卷课 程 java面向对象程序设计 授课教师考试时间 考试班级学 号 姓 名题号一二三四五总 分审核人得分一、填空题(每空2分,共20分)1.Java源...
  • C++复习题(面向对象程序设计)

    千次阅读 多人点赞 2020-07-14 15:31:32
    下面选项不属于面向对象程序设计特征的是( C ) 。 A)继承性 B)多态性 C)相似性 D)封装性 可用作C++语言用户标识符的一组标识符是( B )。 A) void define +WORD B) a3_b3 _123 YN C) for -abc Cas
  • 文章目录高级语宫及其语法描述(一)程序语言的定义(二)高级语言的一般特性1、高级语言的分类2、数据类型与操作 高级语宫及其语法描述 (一)程序语言的定义 编译程序要对程序进行正确的翻译,首先要对程序设计...
  • 学好Python这门编程语言,需要有稳固的基础才行。练习是最重要的部分,当然对应的概念也必须要有所了解,尤其是参加Python二级考试的人。
  • java面向对象

    万次阅读 多人点赞 2018-08-21 16:51:59
    包括面向对象概念、类与对象的关系、封装、构造函数、this关键字、static关键字、单例设计模式、继承、多态、内部类、异常、包等java基础知识。 1、面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是...
  • 2.状态图和活动图建立了UML面向对象开发过程对象动态(B)模型。 A.交互 B.状态 C.体系结构 D.软件复用 3.UML的(C)模型图由活动图、顺序图、状态图和合作图组成。 A.用例 B.静态 C
  • (1)下列有关该系统参与者和用例的描述中,错误的是(B) A. 会员作为参与者,可以通过该系统在线购票 B. 售票员作为参与者,可以通过该系统为普通观众售票 × C. 时间作为参与者,会定期启动系统,结算需返还的...
  • Java面向对象 - 类与对象

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,297
精华内容 25,318
关键字:

下列关于对象概念的描述中