`

oop 的基础知识

 
阅读更多

面向对象的三大特征: 封装、继承、 多态

 

一、面向对象高级: 修饰符:

static  1. 修饰变量(属性);2修饰方法;3修饰代码块。

覆盖overriding 不适用于静态方法。

当static 修饰代码块是(代码块要在类的任何一个方法之外),那么这个代码块被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。

一般静态代码块用来初始化静态成员。

static 通常用于Singleton 模式开发。

 

final 可以修饰类、属性、方法。

当用final 修饰类的时候,此类不可以被继承。即final 类没有子类。

当用final修饰一个属性(变量)的时候,此时的属性成为常量。

 

public static final  对常量进行标示。

如果一个方法前有修饰符为 private  or static  ,则系统会自动在前面加上final。 即private和static方法默认均为final 方法。

 

abstract (抽象)可以修饰类、方法。

1. 如果一个类设置为 abstract, 则此类必须被继承,此类不可生成对象。

abstract 虽然不能生成对象,但可以声明,作为编译时的类型,但不能作为运行时类型。

Final 和 abstract 永远不会同时出现。

 

二、java 的核心概念: 接口(interface)

 

接口与类属于同一层次,实际上,接口是一种特殊的抽象类。

public interface  公开接口

与类相似,一个文件只能有一个public接口,且与文件名相同。

在一个文件中不可以同时定义一个public接口和一个public 类。

 

一个接口中,所有的方法为 public abstract; 所有属性 public static final 常量

 

一个类实现一个接口格式:

class A implements IA {

}

 

一个了实现接口,相当于它继承一个抽象类。

类必须实现接口中的方法,否则其为 抽象类。

注意:

1. 一个类除继承另外一个类,还可以实现接口;

2.一个类可以实现多个接口,中间用“,”隔开

3.接口和接口之间可以定义继承关系,并且接口之间允许实现多继承。

interface IC extends IA, IB{}

 

 

Objec 类,是java体系中所有类的父类。

(1)、finalize() 当一个对象被垃圾回收的时候调用的方法。

(2)、toString()  利用字符串表表示对象。

(3)、 equal()

 

Exception(例外/异常)

java 将所有的错误封装成一个对象,其根父类为Throwable

的子类 为  : Error   和 Exception

 

Exception  的子类: Runtime exception(未检查异常)、非Runtime Exceptio你(已检查异常)

 

定义一个例外类: 继承 exception or  RuntimeException

 

 

三、 集合 Collection

     java.util.*  

集合框架接口的分类: Collection interface、 map interfact

collection (List 接口, Set 接口——〉SortedSet 接口)

Map 接口——〉SortedMap  接口

 

java 中所有与集合有关的实现类都是这六个接口的实现类。

1. Collection 接口: 集合中每一个元素为一个对象,这个接口将这些对象组织在一起,形成一维结构。

2. List 接口: 元素按一定的顺序组织,List 接口中的数据可以重复。

     ArrayList :动态可变数据,数据查询速度快,增删速度慢

    LinkedList:  动态可变数据,查询效率低,增删快。  功能用于 堆栈 和队列

    Vector : 与ArrayList 相似,但 Vector 是重量级组件,使用消耗资源较多。

     结论: 在考虑并发的情况下用Vector (保证线程安全)

                  不并发时用ArrayList(不保证线程安全)

3. Set 接口: 元素无序,且不可重复。

Set——HashSet 实现类

遍历一个Set 的方法只有一个: 迭代器(interator)

 HashSet : 元素无序,且不重复

HashSet 底层用数组;

结论: 如将自定义类用hashSet来添加对象,一定要覆盖hashCode 和equals();

覆盖原则:保证两个对象的hashcode 返回的相同的数,而且equals() 返回true

 

4.SortedSet : 会按照数字将元素排序, 为“可排序集合”。

 SortedSet 的实现类 TreeSet: 作用自动为添加到TreeSet中的元素排序。

TreeSet不需要实现HashCode(),  equals()

只要实现compareable 和 compareTo() 即可实现过滤功能。

4. Map :Key-value 是用一个不可重复的key集合对应可以重复的value集合。(eg:字典)

具体细节内容见(java 学习笔记[必看经典])

 

 

四、线程

 

线程有两种实现方式

1. 继承 Thread 类

class MyThread extends Thread{

        public void run() {

        }

 

}

 

public class TestThread {

 main() {

  Thread t = new MyThread();

t.start();

}

}

 

 

 2. 实现 Runnable 接口

 Class MyThread  implement Runnable {

 public void run() {

 Runnable r = new MyThread();

Thread t = new Thread();

t.start();

}

}

 

实现同步 synchronized 同步

 

 

 五、I/O 流

1.  File 类,(java.io.*)

 

       File f = new File("11.txt");    // 创建一个名为 11.txt 的文件对象

       f.CreateNewFile();    //  真正地创建文件

 

       f.CreateMkdir();  创建目录

       f.delete();    // 删除文件

       f.deleteOnExit();    // 在进程退出的时候删除文件,这样的操作通常用在临时文件的删除。

       List() :  显示文件名(相对路径)

       ListFiles ():返回Files类型数组, 可以用getName() 来访问到文件名。

       使用 isDirectory()     和 isFile()  来判断究竟是文件还是目录。

 

2. 使用I/O流来访问文件file 的内容。

    Jvm 与外界通过数据通道进行数据交换。

    分类:

    按流分为  输入流和输出流

    按传输单位分   字节流和字符流

    还可以分为: 节点流和过滤流

    节点流:   负责数据源和程序之间建立连接

    过滤流:   用于给节点增加功能。过滤流的构造方式是以其他流位参数构造(这样的设计模式称为装饰模式)

 

字节输入流: io 包中的InputStream 为所有字节输入流的父类。

                       Int read();     读入一个字节(每次一个);

                       read(byte[]) 返回值可以表示有效数 ,返回值-1, 表示结束。

字节流输出流:   io包中的 OutPutStream  为所有字节输出流的父类。

                       write 和 read 对应。

/**
  * get stream from file for db
  * @param fileName  path of file
  * @return  byte[] 's info
  */
 public static byte[] getStreamForDB(String fileName) {
  File file = new File(fileName);
  int fileLength = (int) file.length();
  byte[] bufferArray = new byte[fileLength];
  FileInputStream inputStream;
  
  try {
   inputStream = new FileInputStream(file);
   try {
    inputStream.read(bufferArray, 0, bufferArray.length);
    inputStream.close();
    
   } catch (IOException exception) {
    log.debug("I/O Exception when reading or closeing: "
      + exception.toString());
    throw new BusinessException(exception.toString());
    
   }
   
  } catch (FileNotFoundException exception) {
   log.debug("File not find: " + exception.toString());
   throw new BusinessException(exception.toString());
   
  }
  
  return bufferArray;
 }
 
 
 /**
  * get File from db
  * @param fileName path of file
  * @param  stream in db
  * @return   File type's file
  */
 public static File getFileFromDB(byte[] bufferArray, String fileName) {
  
  File file = new File(fileName);
  FileOutputStream outputStream;
  
  try {
   outputStream = new FileOutputStream(file);
   outputStream.write(bufferArray, 0, bufferArray.length);
   outputStream.close();
  } catch (Exception e) {
   throw new BusinessException(e.toString());
   
  }
  
  return file;
 }

 

六、网络编程

略。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java初级oop基础

    ### Java初级OOP基础知识详解 #### 一、面向对象与面向过程的区别 在软件开发领域,面向对象(Object-Oriented Programming, OOP)和面向过程(Procedure-Oriented Programming, POP)是两种不同的编程思想。 - *...

    oop基础总结

    本文将从封装、继承、多态以及接口四个方面来总结Java中的OOP基础知识。 #### 封装(Encapsulation) 封装是OOP的一个核心概念,其主要目的是隐藏对象的内部状态和实现细节,并通过定义一组公共的方法来访问和修改...

    oop飞行棋控制台版

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序设计中的实体(如数据和操作)封装在一起,形成独立的对象。...这是一个很好的实践项目,对于学习和巩固OOP基础知识非常有帮助。

    04-Java-OOP-Basics.zip_java programming_oop

    本教程将深入探讨Java中的OOP基础知识,并与C++进行对比。 1. **类与对象** - **类**:在Java中,类是创建对象的蓝图。它定义了对象的属性(数据成员)和行为(方法)。例如,你可以创建一个名为"Person"的类,...

    OOP课程设计报告参考样本.docx

    ### OOP基础知识 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”来设计软件。每个对象都是一个类的实例,具有状态(属性)和行为(方法)。OOP的核心理念...

    jquery_js_oop

    下面将详细讲解JavaScript的OOP基础知识以及如何与jQuery相结合。 1. **JavaScript中的对象和原型** JavaScript是一门基于原型的语言,它的对象可以直接创建,而无需预先定义类。对象可以通过字面量语法或构造...

    java二进制补码源码-addressbook-level2:一个面向学生的Java示例应用程序。使用OOP基础知识的AddressBook应

    这是一个以OOP方式编写的CLI(命令行界面)地址簿应用程序。 这是一个Java示例应用程序,旨在供学生在使用Java作为主要编程语言的同时学习软件工程。 它提供了一个编写合理的代码示例,该示例比学生通常在数据结构...

    python_oop:Python OOP

    它由一个演示文稿组成,涵盖了OOP基础知识和后续工具开发所需的生物学背景。 code_chunks和python_oop.ipynb引入了具有OOP基础知识的相同python代码段(取决于使用/使用的格式(终端,IDE,笔记本))。 通过遍历...

    android架构-复习基本OOP知识d

    在Android架构设计中,面向对象编程(Object-Oriented Programming, OOP)是核心基础,尤其是在构建可维护、可扩展的软件系统时。本主题"android架构-复习基本OOP知识d"旨在帮助开发者深入理解并熟练运用OOP原则,...

    oopxm(1).zip

    标题中的"oopxm(1).zip"看起来是一...由于我们无法直接查看压缩文件的内容,以上都是基于OOP基础知识的解释。如果你希望了解更具体的信息,比如某个特定编程语言的OOP实现或某个设计模式的细节,需要提供更多的上下文。

    伯乐在线面向对象女生要求分析,python,机器学习.zip

    这可能涵盖了对OOP基础知识的理解,如类与对象、封装、继承、多态等概念,以及如何在实际项目中运用这些概念。 Python在机器学习中的应用广泛,因为其丰富的库支持,如NumPy用于数值计算,Pandas用于数据处理,...

    javaOOP文档、知识点总结.CHM

    本文档总结javaOOP所有关键知识,包括java基础知识、面向对象、常用API、多线程、集合、IO、泛型、枚举、反射、注解等概念性知识。

    面向对象的编程基本语法ppt共91页.pdf.zip

    本资料"面向对象的编程基本语法ppt共91页.pdf.zip"显然是一个关于OOP基础知识的详细教程,可能包含了91页的PPT内容,旨在帮助学习者理解和掌握面向对象编程的基本概念、原则和技巧。 在OOP中,有几个关键概念是必须...

    Mac OS X Cocoa Programming-2

    - **办公室时间**:参加David的办公室时间,了解OOP基础知识。 - **书籍与文章**:市面上有很多关于OOP的书籍和文章。 - **在线资源**:访问Apple开发者网站...

    Android架构:复习基本OOP知识b

    总之,扎实的OOP基础对于成为一名合格的Android架构师至关重要。通过不断的学习和实践,开发者可以构建出更加健壮、易于维护的Android应用,从而在敏捷开发的迭代过程中游刃有余。通过观看"A01_b_复习基本OOP知识....

    面向对象程序设计学习&复习资料

    其次,《面向对象程序设计基础》系列文档(1.doc和2.doc)提供了对OOP基础知识的详尽讲解。这些文档可能包含了类与对象的概念、封装的原理、继承的机制、多态的实现,以及虚函数和模板等高级特性。学习者可以通过...

    Java OOP编程思想学习之我见

    ### Java OOP编程思想学习之我见 在深入探讨Java面向对象编程(OOP)之前,我们首先要理解OOP的基本概念及其与过程式编程的区别。Java作为一种强大的编程语言,其设计初衷之一就是全面拥抱OOP理念,这不仅体现在...

    实验四 访问属性.docx

    通过实现复数的基本数学运算和获取复数信息的方法,不仅巩固了对OOP基础知识的应用能力,还提高了代码的健壮性和安全性。此外,这种实践也有助于培养良好的编程习惯和思维模式,为后续更复杂的项目开发打下坚实的...

    C#学习(基础知识,OOP概念,继承等)

    本压缩包文件旨在帮助初学者理解并掌握C#的基础知识,包括OOP(面向对象编程)概念和继承等核心概念。 一、C#基础知识 1. 变量与数据类型:C#中的数据类型分为值类型和引用类型。值类型包括整型、浮点型、字符型和...

    oop(面向对象程序设计)考试题

    面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用的编程范式,它...通过解答这些题目,考生不仅可以检验自己对OOP理论知识的掌握程度,还能提升实际编程能力,为未来的职业生涯打下坚实基础。

Global site tag (gtag.js) - Google Analytics