笔记: package 任务135; /**类的 内部类, *1.相当于说, 我们可以在类的内部再定义类, * 2.成员内部类: * a.是外部类的一个成员,4个修饰符:static, final ,abstract ,可以调用外部类的属性和方法 * b.具有类的特点: * 3.局部内部类:(定义在类的方法中! ) * 常常使用一个方法,使其成为某个类或接口的对象, 而这个类或者接口在方法内部创建 * 4.或者 new___(){}返回一个匿名的 实现这个类的对象 * 4.重点: 1)创建 2)…
final final概念 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变.final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. final特点 1,final修饰类不可以被继承,但是可以继承其他类. class Yy {} fin…
内部类lambda重点摘要 内部类特点: 内部类可以直接访问外部类,包括私有 外部类访问内部类必须创建对象 创建内部对象格式: 外部类.内部类 对象名=new外部类().new内部类(); 静态内部类访问: 外部类.内部类.方法名 局部内部类: 局部内部类在方法中定义的类,外届无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类成员,也可以访问方法类的局部变量 私有成员内部类访问需在自己外部类中创建对象 匿名内部类: 前提: 需要一个类或者接口 格式: new 类名/接口名(){重…
Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的前提是继承. 从现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三即是学生也是人.即出现两种形态.Java作为面向对象的语言,同样可以描述一个事物的多种形态.如Student类继承了Person类,一个Student的对象便既是Student,又是Person. 最终多态体现…
Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. 1>.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.典型的编程语言代表就是C语言. 例如:公司打扫卫生(彩玻璃,扫地,拖地,倒垃圾等),按照面向过程的程序设计方式会思考“打扫卫生我该怎么做,然后一件件的完成”,最后把公司卫生打扫的干干净…
前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // 定义类 class Person { // 定义name,age属性 private String name; private int age; // 定义有参数的构造方法 Person(String name, int age){ this.name = name; this.age = age;…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第一百章:局部内部类可以实现接口吗? 下一章 "全栈2019"Java第一百零一章:局部内部类覆盖作用域内成员详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"J…
java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已有的程序结构上扩充新的功能 •多态性:在某一个该娘范围内满足 2)面向对象开发分为以下几个步骤: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2.类与对象 1)了解类与对象的关系 ♦认识类与对象 类与对象是整个面向对象之中最基础的组成单元,类是共性的一个集合,而对象是某一…
Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成了一种关系体系.例如公司中的研发部员工,运维部员工,人事部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Python工程师继承自研发部员工,而网络运维工程师和系统运维工程师继承自维护部员…
1.内部类的概念 内部类顾名思义:将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.对于很多Java初学者来说,内部类学起来真的是一头雾水,根本理解不清楚是个什么东西,包括我自己(我太菜了!哈哈),所以接下来我要好好地来研究一下. 我们来看下内部类的定义格式: public class OuterClass { //code class InnerClass{ //code } } 这里的InnerClass就是一个内部类.无论在我们的学习中还是工作中,内部类用到的地方真的不是很多…
JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据.     隐藏类的实例细节,方便修改和实现. 3.封装的实现步骤 需要注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作.当然最好使用get/set方法,比较标准. A.访问修饰符 从表格可以看出从上到下封装性越来越差. B.this关键字 1.this关键字代表当前…
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 为什么要使用内部类 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响. 在我们程序设计中有时候会存在一些使用接口很难解决的问题,这个时候我们可以利用内部类提供的.可以继承多个具体的或者抽象的类的能力来解决这些程序设计问题.可以这样说,接口只是解决了部分问题,而内部类使得多重继承的…
1 成员内部类的定义和使用 public class Outer { private String name; public class Inner { public void innerMethod(){ System.out.println("heart beat:Pengpengpeng"); } } public void method(){ System.out.println("My name is:"+ name); Inner inner = new…
本文内容分转自博客:http://www.cnblogs.com/mengdd/archive/2013/02/08/2909307.html 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类local inner cla…
成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过classpath找到*.class文件所保存的真实目录,之后再进行加载执行 小结 Path的主要功能是设置JDK的可执行命令 classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.” [注意]classpath只在java命令的时候起作用,而对于javac不起任何作用 2.简单JAV…
package 软件包 类名前加入命名空间(包),解决命名冲突问题. 定义格式:公司域名倒叙.项目名.模块名; package语句写在文件第一行 使用import语句导入package java.lang; 软件包下的所有类系统自动导入. 编译 javac -d 生成路径 java源文件路径 运行 java 完整类名 内部类 基本 定义:类里面的类. 好处:内部类可以访问其外部类的私有数据. 分为 :静态内部类,成员内部类,局部内部类,匿名内部类 静态内部类 调用静态内部类的静态方法: Oute…
一.适配器设计模式 1.适配器模式 adapter:适配器: 电脑电源适配器:作用:转换电压,将不符合使用要求的220伏特的市电转换成我们电脑可以使用的电压: 适配器:将不符合使用要求的东西转换成符合我们使用要求的东西: 2.生活中的适配 Java中,根据适配的目标不同,可以将适配器分为三类: 对类的适配:对对象的适配:对接口的适配: 对接口的适配: 需求:有一个接口,里面定义了5个抽象函数:而我们要写一个类实现这个接口,但是在我们的类中,只需要使用其中的一个方法: 使用接口的适配: 接口的适配…
形参和返回值 抽象类名作为形参和返回值 方法的形参是抽象类名,其实需要的是该抽象类的子类对象 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象 接口名作为形参和返回值 方法的形象是接口名,其实需要的是该接口的实现类对象 方法的返回值是接口名,其实返回的是该接口的实现类对象 内部类 内部类概述 内部类:就是在一个类中定义一个类 内部类的定义格式 格式: public class 类名{ 修饰符 class 类名{ } } 范例: public class Outer{ public clas…
1.内部类是定义在另一个类中的类.使用内部类的原因有: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据 内部类可以对同一个包中的其他类隐藏起来 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷 2.使用内部类访问对象状态 内部类既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域. 例如,外部类TalkingClock中有数据域beep,而内部类中没有定义数据域beep,但是却可以直接通过if (beep) Toolkit.getDefaultToolk…
Hello 大家好,我又来啦,今天我们来说说Java的面向对象. 还记得之前去面试几家公司的实习生职位,大部分面试官都问过我有关面向对象 的问题,不知道以后还会不会问,估计是不会了吧...(:3[▓▓] 下面我们来说正事!(≖ ‿ ≖)✧ 面向对象特点有四个——封装.继承.多态.抽象 封装: 封装的概念:方法的调用者并不清楚方法的具体业务逻辑,只有方法的实现者才清楚方法的具体实现. 封装的理解:Java将相关变量和方法封装到类中,通过可见性实现封装. 可见性有四个关键字: 1.private:当…
5.局部内部类Local inner class 马克-to-win:什么叫局部内部类?内部类声明位置:1.它的外部类的范围之内.2.在几个程序块的范围之内.例如,由方法定义的块中或甚至在for循环体内部.局部内部类有什么意义?意义就是:你希望这个类只被解决某个问题用,任何其他人,其他地方都不能用它.就像临时变量一样.马克-to-win:生活中百年不遇我们去海边玩,专门裁出一块布来铺在沙滩上, 但这块布干什么别的事都不合适,就属于这种情况. 例2.5--- class ShellMark_to_…
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用.  14.考虑实现Comparable接口 与本章讨论的其他方法不同,compareTo方法并没有在Object类中声明. 相反,它是Comparable接口中的唯一方法.…
在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中要比较对象的大小或者要对对象的集合进行排序,需要通过比较这些对象的某些属性的大小来确定它们之间的大小关系. 一般,Java中通过接口实现两个对象的比较,比较常用就是Comparable接口和Comparator接口.首先类要实现接口,并且使用泛型规定要进行比较的对象所属的类,然后类实现了接口后,还需…
抽象类: abstract抽象:不具体,看不明白.抽象类表象体现.在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法.抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰.抽象类的特点:1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量).2:抽象方法只定义方法声明,并不定义方法实现.3:抽象类不可以被…
List接口继承了Collection接口,位于java.util包中.它包含Collection接口的所有方法,外加其他一些方法(具体实现参考源码),比较重要的有: anyType get(int index) anyType set(int index, anyType newVal) void add(int index, anyType x) void remove(int index) ListIterator<anyType> listIterator(int pos) List…
面向对象变量 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变量存储在栈内存的方法中 区别三:声明周期不同 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失 区别四:初始化不同 成员变量因为在堆内存中,所有默认的初始化值 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用. 基本类型…
一.面向对象的引入 解决问题的时候,首先要会分析思路,这个思路就是我们生活中解决一个问题的方法步骤: 有了思路之后,再把思路使用java代码来解决: 但是 计算总分的需求变了 分析:原来在一个程序中,出项代码重复的问题,是通过将相同的代码抽取出来,放到函数中,需要的时候调用函数,来解决的: 现在又是相同的代码,能不能也抽出来对呢? 分析发现,相同的代码是一个函数,函数抽出来,可以放在哪里呢?根据函数的定义,函数是必须写在类中的,所以我们要抽出来,也只能放到一个类中: 抽出来后,编译程序,发现报错…
一.面向对象的概念 1.什么是面向对象? (1)面向对象是一种符合人类思维习惯的编程思想. (2)面向对象是一种思考问题的思维方式. 2.三种特性: (1)封装性 (2)继承性 (3)多态性 3.建立面向对象思维方式: (1)先整体,再局部 (2)先抽象,再具体 (3)能做什么,再怎么做 4.如何学习面向对象? (1)掌握一门面向对象的语法 (2)熟悉面向对象的设计原则 (3)熟悉面向对象设计模式 二.类与对象 1.类的定义: (1)类是分类.类别 (2)通过分类,我们可以区别不同的事物种类,在…
封装 1.1 基本概念  封装(encapsulation)是面向对象三大特征之一,它是指将对象的状态信心隐藏在对象的内部,不允许外部直接进行访问,而是通过该类提供的方法来实现对内部信息的操作和访问.封装的作用如下: ※ 隐藏类的实现细节. ※ 让使用者只能通过实现预定的方法来访问数据,从而可以在方法里添加逻辑控制,限制对类成员的不合理访问 ※ 可以进行检查,从而有利于保证对象信息的完整性. ※ 便于修改,提高代码的可维护性 1.2 具体实现规律 为了实现良好的封装,需要从以下两个方面进行考虑:…
面向对象的程序设计: 1. 基本特征:抽象性,封装性,继承性,多态性. 2. 类及成员的访问控制:private:同一类中: default:同一包中: protected:子类中: public:全部: 3. 继承 --> [访问控制修饰符] class <子类名> extends <父类名> { 子类体 } 规则: 1) 不支持多重继承. 2) 只继承非private成员变量及方法. 3) 子类会覆盖同名的父类函数. 4) 可以实现子类到父类的"向上转型&quo…