本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时,是将值复制给变量,当==用于基本类型时,是比较两个变量储存的值是否相同,如下面的程序: int a = 10; int b = 10; int c = a; System.out.println(a == b); //显示true System.out.println(a == c); //显示true 如…
本人水平有限,创作本文是为了记录学习和帮助初学者学习,欢迎指正和补充 一.面向对象编程的设计概述 很多同学都在学校学了电脑的编程,现在的书籍大部分都是oop面向对象编程,一个很抽象的的名字,比较难以理解,首先我们从名字开始入手 (老实说我和大家一样,开始的时候也是比较难以理解) OOP的全称是:Object Orient Programming (Object:对象  Orient:指定方向  Programming: 编程) 所以面向对象编程可以说就是对英文的直译过来的,我们来初步认识下: 1…
多线程告一段落,開始经常使用对象API的涉及,背也要背下来!.! 日后开发,遇见最多的对象是文字,也就是字符串 String类 字符串是一个特殊对象 字符串一旦初始化就不能够被改变 一.特点 public class Main { public static void main(String[] args) { Demo1(); System.out.println("--------------"); Demo2(); } /*演示字符串的第一种定义方式,并明白字符串常量池的特点*/…
上转型:重写父类方法才调用子类方法,其他仍用父类的,包括被子类隐藏的父类成员变量,而且不能调用子类新增的成员变量和成员方法. 下转型:只能是转上去的才能转下去.下转型类似于该子类直接继承父类. package Pack1; public class updown { public static void main(String[] args) { // TODO Auto-generated method stub A obja; B objb; obja=new B();//obja为子类B对…
通过反射创建对象 通过反射创建对象有两种方式,一种通过Class对象的newInstance()方法,一种是获取到Class对象的Constructor后,再调用newInstance()方法,前者要求对应类有默认的无参构造器,后者则可以用特定的的构造器 前者用得较多,很多Java EE框架中都用xml配置文件信息来创建Java对象 示例: package testpack; import java.lang.reflect.Constructor; public class Test1 { p…
最近在看<Java编程思想>,下面按照最近看书的顺序梳理一下心得,由于是初次学习,大部分心得是摘抄自书中: 1. Java中,每个变量都是一个对象. 在创建时首先在内存的堆栈中创建一个该对象的引用,然后调用该对象的构造函数在内存的堆上面建立该对象,并将该对象与堆栈中的引用相连接. 例如:Stack test = new Stack(); 在等号左面 Stack test 首先创建了一个对象test的引用,然后  new Stack() 在堆中申请一块内存空间,并调用构造函数创建了一个对象,最后…
一.考虑用静态工厂方法代替构造器 1.此处的静态工厂方法是指返回指为类的对象的静态方法,而不是设计模式中的静态工厂方法. 2.静态工厂方法的优势有: a.使用不同的方法名称可显著地表明两个静态工厂方法的不同,而不像构造器,名字只能是类名. b.并不是每次调用静态工厂方法,都会重新构造一个新的对象. c.可以返回类型的子类型的对象. d.创建参数化类型的实例时,代码变得简洁了. 3.静态工厂方法的缺点有: a.类如果不含有公有的或者受保护的构造器,就不能被子类化(静态工厂方法的存在导致构造器存在的…
一.类集 类集就是一组动态的对象数组,说类集可能不好理解,类集又称容器,容器顾名思义就是放东西的地方. 类集就是为了让我们更加简洁,方便的存放.修改.使用数据的. 二.Collection接口 我们看下文档中的描述,Collection这个接口主要是代表容器的规范,主要用于实现其他具体功能的子接口. Collection更像是一个抽象出来的规则,它代表了一种标准和规范,具体的容器的实现是依靠子接口去实现的. Collection只是定义了一种标准,其他的子接口必须按照这个标准来,也可是说是其他子…
1.Clone()方法产生一个object,使用方法后必须产生的object赋值. Vector v2 = (Vector)v.clone(); 2.Clone()方法在object中是保护类型方法,如果自己创建的类需要使用Clone()方法的话需要自己重新写一个,并且继承Cloneable接口. package tweleve; import java.util.*; class MyObject implements Cloneable { int i; MyObject(int ii) {…
定义二维数组 int[][] a = new int[4][5]; 可以不指定列数 int[][] a = new int[4][]; 获取行 int i = a.length(); 如果使用第一个例子,这里就是返回4 获取列 int i = a[0].length();使用第一个例子,这里就是返回5 定义一个对象数组 Book[] books = new Book[50]; 这里的Book是个实体类,之后的用法与一维数组的用法是一样的…