`
AAries
  • 浏览: 39725 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java基础知识学习3

 
阅读更多
1.由于类的构造器可以重载,所以可以采用多种形式设置类的实例域的初始状态。
a.在类的定义中直接将一个值赋给任何域。e.g:
public class Employee {
    private int id = assignId();

    public int getId() {
        return id;
    }
    private static int nextId = 1;
    static int assignId() {
        int r = nextId;
        nextId++;
        return r;
    }
}
b.在构造其中赋值。

c.初始化块。初始化块无论执行哪个构造器,都会先执行初始化块,然后运行构造器!

总结:系统执行构造器的步骤:
① 所有数据被出示华为默认值(0,false,null)
② 按照在类声明中的出现次序,依次执行所有域初始化的语句和初始化快
③ 如果构造器调用了其他构造器,则先执行其他构造器。
④ 执行构造器主体部分。

2.对类中方法参数的命名。要易懂!

3.可以调用另一个构造器。

4.finalize方法,析构,释放内存资源!可以为任何类添加finalize方法,但是很难知道这个方法何时调用!

5.类的设计技巧
① 一定要将数据设为私有
② 一定要对数据进行初始化,java不会初始化局部变量,但是会初始化对象的实例。最好不依赖java提供的默认值!
③ 不要在类中使用过多的基本数据类型。就是说用类代替多个相关基本类型数据的使用。
④ 不是所有的域都需要独立的访问器和域名更改器!
⑤ 使用标准格式进行类的定义。

6.用super条用父类的方法。或者使用父类的构造器。

7.如果一个数组试图存储一个其他类型的引用就会引发ArrayStoreException异常。

8.final类:不允许继承。final方法,不允许重载!

9.java中允许上转型。即子类的对象用父类来构造。但也失去了子类自己的方法。只能在继承层内进行类型转换。将超类转成子类前应进行instanceof检查。 (sub instanceof super)

10.父类顶一个抽象的方法,子类来实现。父类为抽象类,调用时,用子类的构造来实现父类的对象。调用子类自己的实现。

11. private :本类可见
    public :所有类可见
    protect :本包中和所有子类可见
    默认 :本包可见(即不加范围修饰符)
12.object类是所有java类的父类。

13.getClass()方法返回一个对象所属的类。

======================================================================================
Object 的相关方法改写等等。

14.java语言要求equals方法具有如下特性
a. 自反性. x.equals(x) == true
b. 对称性. x.equals(y) == true则 y.equals(x) ==true
c. 传递性. x.equals(y) == true, y.equals(z) == true 则 x.equals(z) == true;
d. 一致性. 如果x和y没有发生变化,则反复调用x.equals(y)的结果不应该发生变化
e. 对于任何非空对象 x.equals(null) == false
15. 完美equals方案:
①显式参数命名为otherObject,稍后需要将他转换成另一个叫做other的变量。
②检测this与otherObject是否引用同一个对象:if(this == otherObject) return true
③检测otherObject是否为null,如果是null返回true,这项检测很必要
④比较this和other是否属于同一个类。如果equals的语义在每个子类中有所改变,就使用getClass 检测。 if(getClass != otherObject.getclass()) return false;如果所有子类的语义都一样则使用instanceof 检测。if(!(otherObject instenceof ClassName)) return false;
⑤将otherObject转换为相应的类变量。ClassName other = (ClassName)otherObject;
⑥使用==进行基本比较,使用equals进行对象比较。如果所有的域都匹配则为true
eg. 
    @Override
    public boolean equals(Object other)
    {
        if (this == other)
            return true;
        if(other == null)
            return false;
        if(getClass() != other.getClass())
            return false;
        Employee e = (Employee) other;
        if(e.getName().equals(this.getName())
                && e.getSalary() == this.getSalary()
                && e.getHireDay().equals(this.getHireDay())
                && e.getDescription().equals(this.getDescription()))
        {
            return true;
        }
        else
            return false;
 
16.比较两个数equals的方法。 Array.equals(type[] a,type[] b)  

17.int hashcode() 返回对象的散列码,如果两个对象相等则必须返回相同的散列码。如果改写equals方法,则要改写hashcode方法。

18.static int hashCodee(type[] a).返回数组的散列码。

19. toString方法。一般书写规范。尽量所有类都加上toString方法,方便自己和所有使用该类的人。
eg. 
    @Override
    public String toString()
    {
        return getClass().getName()+"[name=" + super.getName() +", salary=" + salary + ", hireDay=" + hireDay +"]";
    }

数组继承了Object的toString方法,数组类型将按照旧的格式打印。
如:
       int[] wppp = {5, 2, 0};
       System.out.println(wppp.toString());
输出结果为:
[I@47b480  其中[I为int。
修正的方法是调用 Arrays.toString(wppp);

20. getClass() 返回对象信息的类对象!

21.clone()创建一个对象的副本。

=======================================================

22.java.lang.Class.getName():返回类的名字。 java.lang.class.getsuperclass():返回超类信息。

23.泛型数组列表。java允许在运行时确定数组的大小。但是一旦指定了大小,就不方便改动了。所以可以使用ArrayList 类。ArrayList是一个采用类型参数和泛型类。

24.数组的使用问题。int b = new int[3];
   int a = new int[5];
   意思b 是int[3]在内存中的一个引用,a是int[5]在内存的一个引用。
   b = a后 a 和 b指向同一块内存。b的改变也会影响a的改变。

25.ArrayList的常用方法。 ArrayList<T>(),声明 ArrayList<T>(int initialCapacity) 用制定的容量构造一个空数组列表。 boolean add(T obj) 在数组末尾添加一个元素。int size()返回当前大小。void
ensureCapacity(int capacity) 确定大小。void trimToSize(),削减到当前大小

26.可以调用forName方法获得类名对应的class对象!Class.forname("classname");

27.可以使用newInstance生成一个实例。
分享到:
评论

相关推荐

    Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例.zip

    Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础...

    java基础知识学习入门

    Java编程语言是软件开发...总结,Java基础知识的学习涵盖了许多方面,从基本语法到面向对象编程,再到集合框架、异常处理、I/O流和多线程。通过理论学习与实践操作相结合,相信你一定能成功入门并逐步精通Java编程。

    本项目用于从头开始梳理Java知识体系,梳理路线为,Java基础—Java高级—Java并发—常用框架—常用中间件—.zip

    java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...

    学习Spring必学的Java基础知识(含数据库事务基础知识)

    学习Spring必学的Java基础知识(含数据库事务基础知识)

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    java基础知识大全(必看经典)

    Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...

    Java 基础知识学习文档

    【Java基础知识学习文档】 Java是一种由Sun Microsystems公司(现已被Oracle公司收购)的詹姆斯·高斯林(James Gosling)创建的高级编程语言,自1995年发布以来,因其可移植性、安全性和高性能而备受推崇。Java...

    java基础知识培训课件.ppt

    java基础知识培训课件

    java基础知识学习

    "Java基础知识学习"涵盖了从入门到进阶的各种概念,对于初学者或是需要巩固基础的开发者来说,这些都是不可或缺的知识点。 首先,Java的学习始于安装Java Development Kit (JDK),这是编写、编译和运行Java程序所需...

    Java基础知识学习.ppt

    非常好的一个学习Java的ppt,比较初级,讲的很清楚,值得下载学习。

    JAVA基础知识总结

    Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。...综上所述,Java基础知识不仅包括了语言的语法和基本结构,还涵盖了运行环境、开发工具以及重要的编程思想和设计模式,是学习和掌握Java编程的基石。

    Java入门基础知识总结学习教程大全.pdf

    Java入门基础知识总结学习教程大全

    java基础知识学习笔记

    这篇“java基础知识学习笔记”是为初学者设计的,涵盖了从入门到精通的关键概念,旨在帮助新手快速掌握Java编程。 首先,从入门阶段开始,Java的学习会从安装JDK(Java Development Kit)开始,这是编写、编译和...

    JAVA基础知识学习(零基础)

    JAVA基础知识学习(零基础)

    java基础总结大全(笔记).pdf

    Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...

    JAVA基础知识精华总结.rar

    以上这些内容构成了Java基础知识的主体,通过深入学习和实践,开发者可以构建坚实的基础,为进一步探索Java EE、Android开发、大数据处理、云计算等领域奠定坚实的基础。《JAVA基础知识精华总结》这本书籍无疑会为...

    本项目实现了 Java 的 JDBC 。 自己学习 Java 过程中对于知识点的强化记忆,强化代码练习;方便回顾和实用。.zip

    java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...

    JAVA基础知识学习零基础ppt课件.ppt

    JAVA基础知识学习零基础ppt课件 本资源主要讲解了JAVA基础知识,包括JAVA开发环境介绍、编程入门、标示符、关键字、数据类型、表达式、流程控制、数组、常用数据结构及算法、面向对象编程OOP、封装、继承、多态、...

Global site tag (gtag.js) - Google Analytics