【学习笔记】java核心技术学习笔记整理

《java核心技术》

 花了半天到一天又认真读了一下java核心技术中的类部分,感觉最近编程时候好多迷迷糊糊,“这样对不对呢,试一试。怎么不对呢”这类的迷糊问题原来都早有定义。

  •  main函数必须在主类中
  •  一个class就是一个机器,要使用其中的方法,需要构建这个类的实例。 一个class中如果定义构造器,构造器的类型是public 类名,类名就是原类名
  •   一个类可以有多个构造器,构造器没有返回值。
  •  变量标记为private,代表只有该类的方法才能使用这些变量,别的类的不可以  方法标记为public,则别的类的方法都可以调用这个方法 
  •  访问器方法:getname  更改器方法:setname  一般是:私有的数据域,共有的访问器方法和更改器方法   、
  • 静态方法:private static的方法,不需要构建实例就可以直接饮用  
        a,如果该方法不需要用对象的变量,只需要使用显式参数就可以 

b,如果这个方法只需要访问类的静态域。

  • 静态域:属于类的一个变量,private static int nextId,当将类做实例化后,会有多个对象,但是只有一个静态域。
  • 一个类中只能含有一个公有类,且名字和文件名一致。EmployTest.java中含有main方法,Employ.java中定义了Employ 的class,则编译时候javac Employ*.java ,在java EmployTest,它会自动将Employ.java也生成class,再串联执
  • .每个类都可以有个main,用来测试这个类,做单元测试
  • this可以调用隐式参数。如果没有写构造器,会有个默认构造器,将数值设置为0,将对象设置为null(注意:String类的name也会成为null,因为String是个类)

对象与类基础

对象变量:Java的对象变量相当于C++的对象指针

构造体:1. 必须与类同名

2.每个类至少有一个构造体,默认为无参构造体

3.可以有0个或多个参数

4.没有返回值

5.可以是private,protected或public,默认为public

6.总是伴随new关键字一同被使用

显式参数:类方法括号中的参数

隐式参数:调用时出现在方法名前的类对象;方法定义中使用this关键字代表该隐式参数

基于类的访问权限:某个类的方法可以访问该类的任何一个实例的私有域

final实例域:将实例域定义为final,则在创建实例时必须初始化这样的域;对于可变对象的变量,定义为final只表示该变量不能再引用别的对象,但当前对象的内部数据域仍可以修改。

静态域:将域用static关键字修饰,表示该类的每一个实例中都有这个域的一份拷贝;静态域属于类,而不属于任何独立的实例,每次对其进行修改,则每个实例中的该域都会变成最新的值

常量:static + final

静态方法:将类方法用static修饰,表示该方法不能向该类的实例实施操作;静态方法没有隐式参数(this);静态方法只能访问该类中的静态域,不能访问实例域;静态方法通过类名直接调用,如Math.random();

方法参数

Java使用值调用

方法参数有两个类型:

1.        基本数据类型

2.        对象引用

对于基本数据类型参数,方法并不能修改实参(因为值调用)

对于对象引用的参数,形参与实参指向的是同一个对象位置,所以方法能改变该对象内部的值,但不能使实参指向一个新的对象

对象构造

重载:一个方法的签名包括方法名及其参数列表,不包括返回值和访问权限;重载就是具有相同方法名、不同参数列表的一组方法,由编译器根据参数列表挑选匹配的方法进行调用

默认域初始化:如果没有在构造体中对域进行显式赋值,那么默认地,数值域赋为0,布尔域赋为false,对象变量赋为null

默认构造体:如果在类定义中没有显式定义构造体,那么默认地,运行时系统会提供一个无参的空构造体

显式域初始化:类定义中,在域定义时直接将初始值赋给该域

调用另一个构造体:在一个构造体中第一句使用this(…);可以调用另一个重载的构造体

初始化块:类定义中直接包含代码块,用于给域赋上初始值

对象构造执行顺序:包含静态块、域初始化语句、初始化块、多个构造体

1.      所有数据域都被初始化为0、false或null

2.      按照类声明中出现的次序依次执行所有静态块

3.      按照类声明中出现的次序依次执行所有域初始化语句和初始化块

4.      如果构造体第一行调用了第二个构造体,先执行第二个构造体的主体

5.      执行本构造体的主体

对象析构:Java不支持对象析构,由垃圾回收器统一回收不再被需要的资源

时间: 2024-11-07 21:13:40

【学习笔记】java核心技术学习笔记整理的相关文章

java核心技术学习笔记之一程序设计概述

Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向对象的语言: 网络技能:Socket,FTP,Http,URL编程简单: 健壮性:避免指针错误使用: 安全性:构建防病毒防篡改系统: 体系结构中立:字节码: 可移植性: 解释性:可以解释任何移植了的字节码: 高性能: 多线程 动态性: 二.   Internet 和 Java Applet 在网页中

Java核心技术 卷一 笔记六 Date类

在Java核心技术卷就行了一前期  date类出现的频率很高  所以就对date类进行了小小的整合 Date类有两个 date类 表示特定时间的类 这个构造函数分配一个Date对象并初始化它代表指定的毫秒数,因为被称为"纪元",即1970年1月1日00:00:00 GMT标准基准时间. 就像格林尼治时间一样  作为一种基准值而存在 一般常用的是date转为string类型 String s=new Date(0).toString(); System.out.println(s.toS

java核心技术学习笔记之一程序设计环境

一术语 JDK:Java Delelpment Jit JRE:Java Runtime Environment 二.安装jdk1.8.0_25 设置环境变量(建议直接安装在C盘下),使用:隔开 C: \Java\jre1.8.0_25\bin; 三.解压源码文件方法 进入C: \Java\jre1.8.0_25 建立src子目录 mkdir src cdsrc 解压文件 Jar xvf ..\src.zip 一.   使用命令行工具 Java HelloWorld.java   带java结尾

[Java学习笔记] Java核心技术 卷1 第六章 接口与内部类

第6章 接口与内部类 6.1 接口 一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象. 在接口声明中,方法自动public,可以不写修饰符.在实现接口时必须把方法声明为public. 一个接口中可以包含多个方法,还可以定义常量,自动设置public static final 声明在接口中的内部类自动成为static和public类. 接口中不能含有实例域,也不能在接口中实现方法.提供实例域和方法实现的任务应该由实现接口的那个类来完成. 可以将接口看成是没有实例域的抽

Java核心技术学习笔记-继承

继承按照我们中文通俗的理解是不需要付出努力,就获得别人的能力或资产,比如继承父辈的家产,继承父辈的表达能力,继承父辈的外貌等等.在类里面的继承,可以理解不需要重新开发代码,就能复用父类的方法和域. 在继承关系里面,可以分为父类和子类,子类继承父类,那子类就有了跟父类一样对外的方法和属性,但是子类也可以拥有自己对外的方法和属性,就好比你继承了父辈的全部家产,但是还可以拥有属于自己的资产一样.所有继承是一个is-a的关系.java类继承用extends来表述继承关系.例如: class Manage

[Java学习笔记] Java核心技术 卷1 第五章 继承

第5章 继承 利用继承,可以基于已存在的类构造一个新类.继承已存在的类就是复用(继承)这些类的方法和域.还可以在此基础上添加新的方法和域. 反射. 5.1 超类子类 使用extends构造一个派生类 class Manager extends Employee { 添加方法和域 覆盖:重写一些基类中不适合派生类的方法 } 所有的继承都是公有继承.即所有的公有成员和保护成员都保持原来的状态,基类的私有成员仍然是私有的.不能被派生类的成员访问. (C++中私有继承或保护继承会将 公有成员和保护成员都

[Java学习笔记] Java核心技术 卷1 第四章

第4章 对象与类 4.1 类和对象的基本概念 描述了类和对象的基本概念,以及类之间的关系介绍. 程序中的很多对象来自于标准库,还有一些自定义的. 结构化程序设计:通过设计一系列的过程(算法),选择合适的存储方式来解决问题. 算法+数据结构 4.1.1 类/封装/继承 类是构造对象的模板,由类构造对象的过程称为创建类的实例. 封装:也称为数据隐藏.从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.优点4.2.3 实例域:对象中的数据. 方法:操纵数据的过程.

java核心技术学习笔记之三程序设计结构

一 基本数据结构 必须包括在类中 必须具备 public static main方法 大小写敏感 二.数据类型 四种整数类型: Int 4字节 short 2字节 long8字节 byte1字节 二种浮点型 float 4字节 douleble 8字节 char类型:boolean类型 常量使用final定义 类常量使用static final定义 三.操作符号 X!=0 &&1/x>x+y   //如果X=0,不进行&&后面的计算避免x=0的1/x操作 数学操作符号

学习笔记——Java核心技术之接口、继承与多态练习题

1.创建一个抽象类,验证它是否可以实例化对象. package com.lzw; public abstract class UseCase3 { abstract void doit(); public static void main(String args[]){ new UseCase3(); } } 2.尝试创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将它向上转型到基类并调用这个方法. package com.lzw; public class Us