private static final Log logger = LogFactory.getLog(SpringProperties.class);
对于顶层(非嵌套)的类和接口, 只有两种可能的访问级别: 包级私有(package private)和公有(public).
超类的private属性并不能被子类访问。假如我们编写一个Manager类继承Employee类。
尽管 Object 是一个具体类,但设计它主要是为了扩展。它所有的非 final 方法(equals、hashCode、toString、clone和finalize )都有明确的通用约定( general contract), 因为它们设计成是要被覆盖( override )的。
继承机制引入了受保护的成员,提供了一个新的成员访问控制级别,可以理解为公共和私有。
公有的 public 受保护的 protected 私有的 private
父类,也称之为基类,也称之为超类。 子类也称之为派生类。 那同学们,什么叫做扩展? 记住了,兄弟们,在原本继承的基础上,扩展自己(子类)的内容,这就叫扩展.,为什么,这样说,因为继承是不是必须必须的啊,是吧,扩展是子类中定义的内容,可写就扩展嘛是吧.
最近把Effective Java复习了一遍,其中有比较多的java最佳实践可以在平时编程中用到。反序列化、并发、注解和枚举这四章没看,并发这本书里讲的比较简单,推荐java并发编程实战这本书。注解和枚举与 Thinking in java中讲的差不多。反序列化用的不多就没看了,以后用到了再复习一下。放上一些书籍笔记的源码,肯定会有纰漏大家可以选择性看看Thinking in Java、算法导论、Effective Java笔记源码 1.创建和销毁对象 1.考虑用静态工厂方法代替构造器: 优势:
本次学习面向对象设计的另外一个基本概念:继承(inheritance)。这是Java程序设计中的一项核心技术。另外,还要学习反射(reflection)的概念。
多态被简要描述为“一个接口,许多实现”。多态性是能够在不同上下文中为某事物赋予不同含义或用法的一种特征-具体来说,就是允许诸如变量,函数或对象之类的实体具有多种形式。多态有两种类型:
如果各子类是分别开发的,或者是在重构过程中组合起来的,你常会发现它们拥有重复特性,特别是字段更容易重复。这样的字段有时拥有相似的名字,但也并非绝对如此。判断若干字段是否重复,唯一的办法就是观察函数如何使用它们。如果它们被使用的方式很相似,你就可以将它们归纳到超类去。
本期题目: (单选题) 1、与InputStream流相对应的Java系统的“标准输入对象”是() A System.in B System.out C System.err D System.exit() ---- (单选题)2、一个类中,有两个方法名、形参类型、顺序和个数都完全一样,返回值不一样的方法,这种现象叫覆盖。( ) A 正确 B 错误 ---- (单选题)3、定义类中成员变量时不可能用到的修饰是() A final B vold C protected D static ---- (单选题)
要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别:包级私有(package-private)的和公有(public)的。如果一个包级私有的的顶层类(或者接口)只是在一个类的内部被用到,就应该考虑使它成为唯一使用它的那个类的私有嵌套类。对于成员(域、方法、嵌套类和嵌套接口)有四种可能的访问级别,下面按照可访问性的递增顺序罗列出来:
区分一个组件设计得好不好,唯一重要的因素在于,它对于外部的其他组件而言,是否隐藏了其内部数据和其他实现细节。设计良好的组件会隐藏所有的实现细节,把 API 与实现清晰地隔离开来。然后,组件之间只通过 API 进行通信,一个模块不需要知道其他模块的内部工作情况。这个概念被称为信息隐藏(information hiding)或封装(encapsulation),是软件设计的基本原则之一。
【代码膨胀】是代码、方法和类,它们的规模已经增加到了难以处理的地步。通常,这些异味不会立即出现,而是随着程序的演化而积累(尤其是当没有人努力根除它们的时候)。
1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接。
基本概念: 1.OOP中唯一关心的是对象的接口是什么,就像计算机的销售商她不管电源内部结构 是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大 限度上提高复用率。 2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。 3.封装:就是把数据
访问控制类 关键字 说明 private 私有的 ,只有当前类中的成员能访问到 protected 受保护的,只有当前类的成员与继承该类的类才能访问 public 公共的,所有用户都可以直接进行调用 default 默认 类、方法和变量修饰符 关键字 说明 abstract 声明抽象 class 类 extends 继承,扩充 final 最终值,一旦定义了就不可改变 implements 实现接口的关键字 interface 接口名 native 本地,原生方法 new 新创建的对象 static 定义
例外: 实例受控的值类: 枚举, 一个值对应一个实例, 所以不需要覆盖equals.
“ Effective Java(第三版)翻译已经进入到第四章:类和接口。(第一章是引言),在第二章条目一到条目九我们讲的是对象的创建和消亡,在第三章条目十到条目十四我们讲到所有对象的公用方法,那么这一章我们会说到类和接口”
Java 关键字 下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。 类别关键字说明访问控制private私有的protected受保护的public公共的default 默认类、方法和变量修饰符abstract声明抽象class类extends扩充,继承final最终值,不可改变的implements实现(接口)interface接口native本地,原生方法(非 Java 实现)new新,创建static静态strictfp严格,精准synchronized线程,同步tra
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Java是一种面向对象编程语言,它的核心思想是封装、继承和多态。这些概念是面向对象编程中的基础,并且在Java中被广泛应用。
theme: channing-cyan highlight: a11y-dark
编写实例受控类有几个原因。实例受控使得类可以确保他是一个Singleton或者是不可实例化的。他还使得不可变类可以确保不会存在两个相等的实例。
对象的序列化就是将Object转换成byte序列,反之叫做对象的反序列化 1.序列化流: ObjectOutputStream,是过滤流----->writeObject 反序列化流: ObjectInputStream ------->readObject 2.序列化接口: Serializable 对象必须实现序列化接口,才能进行序列化,否则将会出现异常 这个接口没有任何方法,只是一个标准 3.一个类实现了序列化接口,子类也就都能进行序列化了 java.io 接口 Serializable publ
合法特殊字符为任何代表字母的Unicode字符,但是不能出现+(操作符)和copyright(除字母外的其他Unicode字符)。其中$尽量不要在自己的代码中使用,一般出现在Java编译器或者其他工具生成的名字中。
一个类可以包含熟悉的类元素,如属性、方法和参数(在其他类语言中称为常量)。它还可以包含通常不在类中定义的项,包括触发器、查询和索引。
今天给大家推荐的文章是有关Java基本概念的,掌握好这些基本概念对学习J2SE、J2EE、J2ME都很重要,也能更好地理解Java的精髓,初学者要注意啦!
之前在《重构·改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更......
3.package 不能以java.开头 4.package: 添加包的规则:公司域名的倒写 + 项目的名字 + 功能名字 注意:不能使用以java.* 开头定义包名 5.Eclipse 快捷键: 1.CTRL + D 删除整行代码 2.CTRL + shift + O 自动引入java引用的java类 3.CTRL + alt + 方向上或者下 向上或者下复制代码块 //CTRL + Y 撤销自己的撤销 6.继承
不允许使用 Java 静态构造函数,但是为什么呢?在深入探讨不允许使用静态构造函数的原因之前,让我们看看如果要使 构造函数静态化 会发生什么。
1、scala 进行 package 打包时,可以有如下形式。【案例演示+反编译查看】
反射库提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序。这项功能被大量地应用与JavaBeans中,它是Java组件的体系结构。
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
最近我儿子迷上了一款吃鸡游戏《香肠派对》,无奈给他买了许多玩具枪,我数了下,有一把狙击枪AWM,一把步枪AK47,一把重机枪加特林(Gatling)。假如我们把这些玩具枪抽象成类,类图的示意图大致如下:
继承是面向对象编程的三大特征之一,继承将面向对象的编程思想体现的更加淋漓尽致,允许类和类之间产生关联。
Liskov替换原则(Liskov Substitution Principle)是一组用于创建继承层次结构的指导原则。按照Liskov替换原则创建的继承层次结构中,客户端代码能够放心的使用它的任意类或子类而不担心所期望的行为。
4、如果所有的子类都有统一的语义,就使用instanceof检测: if (!(instanceof instanceof ClassName)) return false;
看到概括关系这个词,我也挺疑惑的,仔细一看居然表达的是继承关系,那么处理概括关系就是说处理继承关系。继承关系的话必然有属性和方法等,那么这块的处理概括关系就是说处理继承关系中属性或者方法的存在位置。直入正题吧!
一、标识符及字符集 Java语言规定标识符是以字母、下划线"_"或美元符号"$"开始,随后可跟数字、字母、下划线或美元符号的字符序列。Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。为增强程序可读性,Java作如下的约定: 1.类、接口:通常使用名词,且每个单词的首字母要大写 2.方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词 3.常量:全部大写,单词之间用下划线分隔 4.变量:通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号。 J
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
提起「复用类」三个字,相信我们脑海中浮现的都是「组合」和「继承」,实际上,在 Java 中复用类的方法也确实是这两种。
摘要: 对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。由于很多Java书籍对protected可见性的介绍都比较笼统,本文重点说明了protected关键字的可见性内涵。
正文之前 今天总算是把那个党员谈话给弄完了,三个学弟轮番跟我来聊天,讲自己的入党动机啥的,看到他们就仿佛看到了大一的自己,原来当时面对学长,面对这类事情,会紧张,会局促,被学长安慰了但是还是绷着的样子。哇咔咔,一晃眼啊,号称是人生中最令人迷醉的那段时间就快没了,研究生的时候可能就没这么写意的事情了。感伤~ 不如看Java,对了,我要推荐国漫--《一人之下》,很好看,很有趣,各路方言看着满满的土气,但这才是国漫吗。。虽然有的地方有点少儿不宜,但是真的很好看啊,简直把我想象中的小说结合现代漫画风格搬上了B栈,太
SuperType 和SubType。每个类型分别有一个属性和一个方法。它们的主要区别是:
领取专属 10元无门槛券
手把手带您无忧上云