`

corejava学习3(接口)

阅读更多

 

Interface(接口)

Interface是一个特殊的抽象类

Interface 里面的常量都是publicstaticfinal

里面的方法都是公开的抽象的。(publicabstract

一个源文件可以有多个接口和类,但只能一个公开的接口或类。

 

接口不能创建对象,但是可以声明一个接口类型的引用

接口存在的意义是被子类实现,用关键字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 只有共有的功能没有共有的属性。

       1finalize():protected void

                     JVM调用垃圾回收器回收不用的内存前运行该方法。

                     不用的内存就是没有引用指向的对象。

                     JVM是做最少回收,不到万不得已,不启动垃圾回收,

                     尽可能的减少回收次数。

                     不要在finalize()中释放资源。

                     System.gc() <====> Runtime.getRuntime().gc()

                     以上方法是告诉JVM调用垃圾回收器回收不用的内存,

                     到底什么时候回收还是得看JVM。该方法不是强行调用垃圾回收。“回不回收要看虚拟机高不高兴了,不是一定会回收内存”。

       String str=new String(“abc”);

 

2toString():返回对象的字符串表现形式。

                     打印对象时,虚拟机自动调用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学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    corejava学习笔记

    Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...

    core java 学习java的书籍

    《Core Java 学习》是一本专为Java初学者和进阶者编写的经典教材,旨在帮助读者深入理解和掌握Java编程的核心概念和技术。书中的内容覆盖了Java语言的基础语法、面向对象编程、异常处理、多线程、集合框架、输入输出...

    学习笔记 java\CoreJava笔记\CoreJava_day11

    CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...

    corejava学习笔记.doc

    Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。

    java\CoreJava笔记\CoreJAVA_day01

    在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - 面向对象编程(Object-Oriented Programming, OOP):Java是一种纯面向对象的语言,一切皆为对象,理解类、对象、封装、继承、多态等...

    CoreJava视频课程(百度云链接)

    根据提供的文件信息,我们可以推断出这是一套关于CoreJava的视频教程。下面将围绕CoreJava的核心知识点进行详细的介绍。 ### CoreJava基础知识 #### Java语言简介 Java是一种广泛使用的、面向对象的编程语言,由...

    COREJAVA学习代码

    "COREJAVA学习代码"这个主题旨在帮助开发者深入理解和掌握Java的基本语法、类库以及编程实践。下面将详细阐述一些核心Java的学习知识点,这些知识点通常会在课堂讲解和教师布置的作业中出现。 1. **基础语法**:...

    core java 学习文档

    这只是Core Java学习文档的冰山一角,后续章节还会深入到类和对象、异常处理、输入输出、集合框架、多线程、网络编程等方面。掌握Core Java是成为熟练Java程序员的必经之路,它能帮助你构建坚实的基础,为更高级的...

    corejava12示例代码

    《CoreJava12示例代码》是一份针对Java编程语言深度学习的重要资源,主要涵盖了CoreJava12版本中的核心概念和特性。这份压缩包文件包含了丰富的示例代码,旨在帮助开发者深入理解Java语言的各个方面,提升编程技能。...

    corejava,java核心编程

    【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...

    core java1&2

    《Core Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...

    学习笔记 java\CoreJava笔记\CoreJava_day12

    在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...

    CoreJava CoreJava

    《CoreJava CoreJava CoreJava 基础学习》 在Java编程领域,"CoreJava"通常指的是Java语言的核心部分,不涉及高级特性如Java EE(企业版)或Android开发。这个概念涵盖了Java语言的基础语法、类库以及面向对象编程...

    Core Java学习资料

    ### Core Java 学习资料详解 #### 一、概述 Core Java 是 Java 技术的基础部分,涵盖了 Java 编程语言的核心概念和技术。对于初学者来说,掌握 Core Java 是非常重要的第一步,它不仅有助于理解 Java 的基本语法和...

    core java 学习笔记

    在Java编程中,核心Java(Core Java)是学习Java语言的基础,涵盖了Java语言的主要特性和API。这篇学习笔记主要讨论了Java集合框架,包括Collection、List、Set和Map四大接口以及它们的相关方法。 首先,Collection...

    Core Java( Java 核心) PDF 教材

    通过学习《Core Java》,读者不仅可以掌握Java编程的基础,还能了解并应用许多高级特性,提升自己的编程技能。无论你是准备踏入Java开发领域的新人,还是希望提升现有技能的开发者,这本教材都将为你提供宝贵的知识...

    core java学习课件

    "Core Java学习课件"提供了一套完整的资源,帮助初学者和有经验的开发者深入理解和掌握Java的核心概念。这个课件可能包括了详细的讲义、实例代码、练习题和解析,旨在构建一个全面的学习路径。 在Java学习的旅程中...

    学习笔记 java\CoreJava笔记\CoreJava_day06

    在Java中,类的继承是单继承的,即一个子类只能有一个直接父类,但可以通过接口实现多继承的效果。在描述的案例中,我们看到`Student`类继承自`Person`类,表明`Student`是一个`Person`,具有`Person`的所有特征。 ...

Global site tag (gtag.js) - Google Analytics