Java入门到精通——基础篇之面向对象

时间:2022-09-16 23:30:37

一、概述。

Java属于面向对象的一种语言,因为Java是面向对象的语言所以这个语言的诞生需要有五个基本特性:
1)万物皆为对象。
2)程序是对象的集合。
3)每个对象都有自己的由其他对象所构成的存储。
4)每个对象都拥有其他类型。每个对象都是某个类的一个实例。

5)某一特定类型的所有对象都可以接收同样的消息。

Java中会有一些我们常用到的概念虽然总在用但是我们却不知道为什么会要有这些下面我就以一问一答的方式来给大家讲解。

二、一些面向对象的疑问。

2.1为什么要有访问控制的存在?它的意义是什么?

1).让客户端程序员无法触及到他们不应该触及的部分——这一部分对数据类型的内部操作是必需的但并不是用户解决特定问题所需的。

2).允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。

在以上的原因下发明了访问指定词决定了紧跟其后被定义的东西可以被谁使用。

public:表示紧跟其后的元素对任何人可用。
private:除了类型创建者和类型的内部方法之外任何人都不能访问的元素。
proteced:与private差不多在继承的类可以访问protecte成员,不能访问private成员。
Java有一种默认的访问权限包访问权限类可以访问在同一包下的其他类的成员但是对于包之外的访问访问控制盒private一样。

2.2什么是组合?什么是聚合?

组合:新的类可以由任意数量、任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成用现有的类组成新的类就是组合。

组合的动态发生就叫做聚合。

2.3什么是容器?Java中容器有些什么?如何选择容器

当解决一个问题的时候不知道需要多少个对象,或者它们存活多久。也不知道如何存储这些对象的时候Java推出了容器。这样我们不需要知道将来会把多少个对象置于容器中只需要创建一个容器对象然后对它处理所有细节。Java中具有满足不同需求的各种类型的容器例如:List用于存储序列,Map建立对象之间的关联。Set每种对象类型只持有一个。

不同容器提供了不同类型的接口和外部行为。不同的容器对于某些操作具有不同的效率。ArrayList和LinkedList。ArrayList中随机访问元素是一个花费固定时间的操作。LinkedList随机选取元素需要在列表中移动。

2.4什么是继承?

继承是为了解决当你创建一个类以后还有一个类似的类的时候我们通常的做法是重新创建一个新类如果我们把这些类以现有的类为基础来复制它也能达到这样的效果。基础的类就叫做源类。

2.5Java创建和销毁对象用的是那种方式?一共有几种创建和销毁对象的方式?

两种对对象创建和销毁的方法:

第一种:在编写的时候就确定对象的存储空间和生命周期,可以通过将对象置于堆栈或静态存储区域内来实现这种方式虽然提高了效率但是牺牲了灵活性
第二种方式成为堆的内存池中动态地创建对象这种方式只有在运行的时候才知道需要多少对象,他们的生命周期如何。以及他们具体什么类型的。
java完全采用了动态内存分配方式每当要创建新对象时候就要用new关键字来构建此对象的动态实例。在堆栈中创建对象的语言编译器可以判断对象的存货时间,并可以自动销毁它,如果是在堆上创建对象编译器对对象就一无所知。

2.6 Java是如何操作对象的?为什么对象要赋初值?

Java用引用操作对象。为什么要赋初值?就像遥控器一样遥控器可独立存在但是没有和电视机相关联它存在没什么意义,最安全的做法就是创建一个对象引用的时候同时便进行初始化。

三、总结。

        Java中的一些概念的出现时有原因的而不是凭空就有的,我们不仅仅需要知道用这些东西而且需要知道这些东西是为了处理什么问题而产生的。

Java入门到精通——基础篇之面向对象的更多相关文章

  1. Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步

    Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述     PV操作是对信号量进行的操作.     进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消 ...

  2. Java入门到精通——基础篇之static关键字

    一.概述        static 关键字是声明静态变量,静态方法用的.static的含义是属于类且不属于类对象的变量和函数. 二.static的产生.         在创建对象的时候除非用new ...

  3. Java从入门到精通——基础篇之JSTL标签

    一.语言基础 EL(Expression Language)表达式,目的:为了使JSP写起来更加简单.提供了在 JSP 中简化表达式的方法. 二.分类 核心标签库:提供条件判断.属性访问.URL处理及 ...

  4. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  5. Java入门到精通——框架篇之Spring源码分析Spring两大核心类

    一.Spring核心类概述. Spring里面有两个最核心的类这是Spring实现最重要的部分. 1.DefaultListableBeanFactory 这个类位于Beans项目下的org.spri ...

  6. Java入门到精通——工具篇之Maven概述

    为接手gxpt准备已经快一个月了从SSH2-->EJB-->环境搭建-->Maven的构建.下面就带领大家初始Maven 一.什么是Maven. Maven是一个垮平台的项目管理工具 ...

  7. Java入门到精通——框架篇之Hadoop概述

    一.Hadoop来历 Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明了倒排索引算法,通过加入了Map ...

  8. 学java入门到精通,不得不看的15本书

    学java入门到精通,不得不看的15本书 一.Java编程入门类1.<Java编程思想>2.<Agile Java>中文版 二.Java编程进阶类1.<重构 改善既有代码 ...

  9. Java面试题之基础篇概览

    Java面试题之基础篇概览 1.一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,且public的类名必须与文件名相一致. 2.Ja ...

随机推荐

  1. crontab

    在crontab中添加了定时任务,但发现没有得到期望的结果, 这就需要查看crontab的执行历史记录,具体位置如下: cd /var/log tail -100 cron 在cron文件中即可查阅已 ...

  2. html 调用 activeX(c&plus;&plus;)

    1.新建MFC ActiveX 2.添加方法 3.找到add函数编写代码 4.在test.idl中找到最后一个uuid 5.编译工程,会自动注册控件 6.html中的代码 <html> & ...

  3. 支付顺序--&gt&semi;微信支付到公司账户--&gt&semi;待出票

    支付顺序-->微信支付到公司账户-->待出票-->查询所有待出票订单 -->遍历提交订单-->火车票接口放回订单id-->存入order订单表中 -->读取订 ...

  4. python摸爬滚打之----tcp协议的三次握手四次挥手

    TCP协议的三次握手, 四次挥手 三次握手过程 1, 服务器时刻准备接受客户端进程的连接请求, 此时服务器就进入了LISTEN(监听)状态; 2, 客户端进程然后向服务器发出连接请求报文, 之后客户端 ...

  5. Shell脚本中的逻辑判断、文件目录属性判断、if的特殊用法、case判断

    1.Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi格式2:if 条件; then 语句; else 语句; fi格式3:if …; then … ;elif …; then ...

  6. 编写脚本自动部署反向代理、web、nfs

    服务器端 #!/bin/bash function nginx_install(){ if [[ -f /usr/sbin/nginx ]]; then echo 'Nginx has been in ...

  7. 海量交通大数据应用平台MTDAP&lowbar;nchang的经验记录

    WRONGTYPE Operation against a key holding the wrong kind of value 根本的就是redis同一个key的value值前后类型不一致,比如最 ...

  8. RxJS v6 学习指南

    为什么要使用 RxJS RxJS 是一套处理异步编程的 API,那么我将从异步讲起. 前端编程中的异步有:事件(event).AJAX.动画(animation).定时器(timer). 异步常见的问 ...

  9. 20155236 2016-2017-2 《Java程序设计》第七周学习总结

    20155236 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Calendar是个抽象类,java.util.GregorianCalendar是其子类, ...

  10. C&num;中&quest;和&colon;&quest;和&quest;&quest;总结

    ?代表可空类型修饰符    引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.为了使值类型也可为空,就可以使用可空类型?:三元表达式    int a=b>c?b:c 如果b大 ...