Interface(接口)
Interface是一个特殊的抽象类
Interface 里面的常量都是public,static,final的
里面的方法都是公开的抽象的。(public,abstract)
一个源文件可以有多个接口和类,但只能一个公开的接口或类。
接口不能创建对象,但是可以声明一个接口类型的引用 ,
接口存在的意义是被子类实现,用关键字implements
如果不想让子类也抽象,就要实现接口里面的所有抽象方法。
接口是用来被实现的(implements)
抽象类是用来被继承(extends)。
实现过程中注意访问权限。
接口之间可以继承。接口可以多继承。接口本身支持多继承,继承了父接口里功能的定义。
类可以既继承一个父类又实现多个接口
接口没有构造方法,不能创建对象。
接口作用:
1、多继承
接口是对类的共性进行再次抽象,抽象出类的副类型。
因为接口 次要类型,所以在类关系里不占一个节点,不会破坏类层次关系的树状结构
Class ee extends dd implements aa
2、标准(弱耦合)
一个接口就是一个标准
接口将标准的制定者,标准的实现者以及标准的使用者分离开,降低实现者和使用者的耦合。
接口是java中一种重要的降低耦合的工具。
接口可以屏蔽不同实现类的差异,当底层的实现尖更换后,不会对上层的使用者产生影响,体现在参数和返回值
――――――――――――――――――――――――――――――――――――
1. 接口回调:
先定义接口,然后先有使用者,再有实现者。
利用参数把实现者传给使用者,
使用者利用接口调用实现者里面相应的功能。
public class TestCallBack {
public static void main(String[] args){
Glass glass = new RedGlass();
//Glass glass = new BlueGlass();
Lamp lamp = new Lamp(glass);
lamp.powerOn();
}
}
interface Glass {
public void lightOn();
}
class RedGlass implements Glass {
public void lightOn(){
System.out.println("this red glass light!");
}
}
class BlueGlass implements Glass {
public void lightOn(){
System.out.println("this blue glass light!");
}
}
class Lamp {
Glass glass;
public Lamp(Glass glass){
this.glass = glass;
}
public void powerOn() {
glass.lightOn();
}
}
2. Object 是Java里所有类的直接或者间接父类。
//class Animal extends Object{}
//class Dog extends Animal{}
Object 类里面的所有的功能是所有Java类共有的。
Object 只有共有的功能没有共有的属性。
1)finalize():(protected void)
JVM调用垃圾回收器回收不用的内存前运行该方法。
不用的内存就是没有引用指向的对象。
JVM是做最少回收,不到万不得已,不启动垃圾回收,
尽可能的减少回收次数。
不要在finalize()中释放资源。
System.gc() <====> Runtime.getRuntime().gc()
以上方法是告诉JVM调用垃圾回收器回收不用的内存,
到底什么时候回收还是得看JVM。该方法不是强行调用垃圾回收。“回不回收要看虚拟机高不高兴了,不是一定会回收内存”。
String str=new String(“abc”);
2)toString():返回对象的字符串表现形式。
打印对象时,虚拟机自动调用toString()获取对象的字符串表现格式,
如果本类不提供(即覆盖)toString(),那么使用的是Object类里的相应方法,
打印的就是地址。
1) equals(Object obj):返回boolean类型
写equals的方法。(对象为null,同一对象,)
==是判断变量本身的值是否相等,引用类型数据判断的是地址。
equals判断的是对象内容是否相等。
对于自己的类,应该覆盖equals()。
覆盖时遵循的原则:
①自反性: a.equals(a) == true;
②对称性: a.equals(b) == b.equals(a) -----> true
③传递性: a.equals(b) ----> true
b.equals(c) ----> true
a.equals(c) ----> true
String str1=”hello” //放在字符串池中
String str2=new String(“hello”)// 分配一个新的内存空间。
public class TestString{//字符串是放在字符串池中的,用的时候去字符串池中找,
//不用的时候JVM会去字符串池销毁
public static void main(String[] args){
// String str1="Hello";
// String str2="Hello";
String str3=new String("Hello");//产生两个字符串对象,new和“”产生的,
//字符串池里有一个字符串对象是由""产生的
String str4=new String("Hello");//跟上边的一共产生三个字符串对象
//hello是去字符串池找的
// System.out.println(str1==str2);
//System.out.println(str1.equals(str2));
//System.out.println(str3==str4);
//System.out.println(str3.equals(str4));
String str5=new String("Hello");
String str6=str5;
str5+="World";
System.out.println(str5);
System.out.println(str6);
//String字符串空间一旦分配,是不能改变的,如果想改,只能新建空间
/*************************
***String str7 = "";
****for(int i = 1;i <= 100;i++){
**** str7 = str7+i+",";
****}
*************************/
//StringBuilder StringBuffer都表示字符串,这两个字符串空间是可以改的
/*StringBuilder sb = new StringBuilder("Hello");
sb.append(",");*/
}
类名.方法
System.gc();
System.out. ;
对象.变量
s.name
s.eat();
Package com.kettas.common
==和equals
1基本类型数据 :==(比值)
2引用类型数据:
== :比的是引用(地址)
Equals():如果覆盖了equals,比的是对象的内容
如果没有覆盖使用object类里的equals(),比的是地址。
String str2=”1234”;
Int i4=Intger.parseInt(str2);
String str3=Interger.toString(i4);
String str4=i4+””;
分享到:
相关推荐
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...
《Core Java 学习》是一本专为Java初学者和进阶者编写的经典教材,旨在帮助读者深入理解和掌握Java编程的核心概念和技术。书中的内容覆盖了Java语言的基础语法、面向对象编程、异常处理、多线程、集合框架、输入输出...
CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...
Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。
在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - 面向对象编程(Object-Oriented Programming, OOP):Java是一种纯面向对象的语言,一切皆为对象,理解类、对象、封装、继承、多态等...
根据提供的文件信息,我们可以推断出这是一套关于CoreJava的视频教程。下面将围绕CoreJava的核心知识点进行详细的介绍。 ### CoreJava基础知识 #### Java语言简介 Java是一种广泛使用的、面向对象的编程语言,由...
"COREJAVA学习代码"这个主题旨在帮助开发者深入理解和掌握Java的基本语法、类库以及编程实践。下面将详细阐述一些核心Java的学习知识点,这些知识点通常会在课堂讲解和教师布置的作业中出现。 1. **基础语法**:...
这只是Core Java学习文档的冰山一角,后续章节还会深入到类和对象、异常处理、输入输出、集合框架、多线程、网络编程等方面。掌握Core Java是成为熟练Java程序员的必经之路,它能帮助你构建坚实的基础,为更高级的...
《CoreJava12示例代码》是一份针对Java编程语言深度学习的重要资源,主要涵盖了CoreJava12版本中的核心概念和特性。这份压缩包文件包含了丰富的示例代码,旨在帮助开发者深入理解Java语言的各个方面,提升编程技能。...
【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...
《Core Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...
在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...
《CoreJava CoreJava CoreJava 基础学习》 在Java编程领域,"CoreJava"通常指的是Java语言的核心部分,不涉及高级特性如Java EE(企业版)或Android开发。这个概念涵盖了Java语言的基础语法、类库以及面向对象编程...
### Core Java 学习资料详解 #### 一、概述 Core Java 是 Java 技术的基础部分,涵盖了 Java 编程语言的核心概念和技术。对于初学者来说,掌握 Core Java 是非常重要的第一步,它不仅有助于理解 Java 的基本语法和...
在Java编程中,核心Java(Core Java)是学习Java语言的基础,涵盖了Java语言的主要特性和API。这篇学习笔记主要讨论了Java集合框架,包括Collection、List、Set和Map四大接口以及它们的相关方法。 首先,Collection...
通过学习《Core Java》,读者不仅可以掌握Java编程的基础,还能了解并应用许多高级特性,提升自己的编程技能。无论你是准备踏入Java开发领域的新人,还是希望提升现有技能的开发者,这本教材都将为你提供宝贵的知识...
"Core Java学习课件"提供了一套完整的资源,帮助初学者和有经验的开发者深入理解和掌握Java的核心概念。这个课件可能包括了详细的讲义、实例代码、练习题和解析,旨在构建一个全面的学习路径。 在Java学习的旅程中...
在Java中,类的继承是单继承的,即一个子类只能有一个直接父类,但可以通过接口实现多继承的效果。在描述的案例中,我们看到`Student`类继承自`Person`类,表明`Student`是一个`Person`,具有`Person`的所有特征。 ...