Java学习笔记 04

一、类和对象的概念

>>具有相同属性和行为的一类实体

  • 对象

>>实物存在的实体。通常会将对象划分为两个部分,即静态部分和动态部分。静态部分指的是不能动的部分,被称为属性,任何对象都会具备其自身的属性;动态部分指的是对象的行为

  • 类实质上就是封装对象属性和行为的载体,而对象是类实例化出的一个实例

二、面向对象的三大特性

  • 封装

>>将对象的属性和行为进行包装,隐藏其实现细节,称为封装

>>采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易的直接操作此数据结构,只能执行类允许公开的数据。避免外部操作对内部数据的影响,提高了程序的可维护性

  • 继承

>>一个对象直接使用另一个对象的属性和方法,并可以在另一个对象的基础上扩充自己的属性和方法,成为继承。继承者称为子类,被继承者称为父类

>>子类的实例都是父类的实例,但不能说父类的实例是子类的实例

>>继承关系可以使用树形关系来表示,父类与子类存在一种层次关系。一个类处于继承体系中,他既可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的属性和方法

  • 多态

>>将父类对象应用于子类的特征就是多态

三、类

  • 成员变量

>>Java中对象的属性也称为成员变量

  • 成员属性

>>Java中对象的行为成为成员方法

  • 权限修饰符

>>Java中权限修饰符主要包括private、public和protected

>>private:该成员变量或方法只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的

>>public:除了在本类使用这些数据之外,还可以在子类和其他包的类中使用

>>protected:只有本包内的该类的子类或其他类可以访问此类中的成员变量和成员方法,其他包的类和子类不能访问

  • 局部变量

>>成员方法内的变量,被称为局部变量。局部变量在方法被执行时创建,在方法之行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误

>>局部变量的作用域从变量的声明开始到该变量的结束为止

>>在互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量

  • this关键字

>>在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式的用于引用对象的成员变量和方法

>>this除了可以调用成员变量或成员方法外,还可以作为方法的返回值

  • 类的构造方法

>>构造方法是一个与类名相同的方法,对象的创建就是通过构造方法完成的。每当实例化一个对象是,类都会自动调用构造方法

>>构造方法特点如下

>>>构造方法没有返回值

>>>构造方法的名称要与本类相同

1 public book(){  //public:构造方法修饰符  book:构造方法名称  ///没有void!!
2     ...//构造方法体
3 }
  • 静态变量、常亮和方法

>>被声明为static的变量、常亮和方法被称为静态成员

>>静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员

>>静态数据与静态方法的作用通常是为了提供共享数据或方法,如数学计算公式等

>>静态成员同样需要遵循着public、private和protected修饰符的约束

  • 类的主方法

>>主方法是类的入口点,定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序

>>主方法的特点如下

>>>主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的

>>>主方法没有返回值

>>>主方法的形参为数组。其中args[0]~args[n]分别代表程序的第一个参数到第n个参数,可以使用args.length获取参数的个数

>>主方法的语法如下

public static void main(String[] args){
       //方法体
}

四、对象

  • 对象的创建

>>在Java语言中通过new操作符来创建对象,可以在Java语言中使用new操作符调用构造方法创建对象

>>对象被创建出来时,就是一个对象的引用。这个引用在内存中为对象分配了存储空间,也可以在构造方法中初始化成员变量

>>每个对象都是相互独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当生命周期结束时,对象就变成垃圾,被Java虚拟机自带的垃圾回收机制处理,不能再使用

  • 访问对象的属性和行为

>>使用“对象.类成员”来获取对象的属性和行为

  • 对象的引用和比较

>>对象的引用:类名 对象引用名称

>>引用于对象相关联的语法:类名 对象引用名称=创建对象操作符(new) 构造方法

>>对象的比较:“==”和equals()

  • 对象的销毁

>>每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收

>>垃圾回收机制回收的两类对象

>>>对象引用超过其作用范围,这个对象将会被视为垃圾

>>>将对象赋值为null

>>垃圾回收机制只能回收由new操作符创建的对象

>>如果存在不是由new操作符创建的对象,可使用Java提供的finalize()方法,这个方法是Object类的方法,被声明为protected,用户可以在自己的类中定义这个方法。如果用户在类中定义了finalize()方法,在垃圾回收时会首先调用该方法,下一次垃圾回收动作发生时,才能真正回收被对象占用的内存

>>需要强调的是,垃圾回收或finalize()方法不保证一定会发生,如Java虚拟机内存损耗殆尽时,是不会执行垃圾回收的

>>由于垃圾回收不受人控制,具体的执行时间也不确定,所以finalize()方法也就无法执行。为此Java提供了System.gc()方法强制启动垃圾回收器来告知垃圾回收器进行清理

时间: 2024-12-14 19:19:56

Java学习笔记 04的相关文章

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.

JAVA学习笔记一(JAVA输出环境变量)

package mytest; import java.util.*;; public class mymain { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print(new Date()); Properties p=System.getProperties(); p.list(System.out); Runtime rt=Runtime.getRuntim

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

java学习笔记一

只记录一些我认为比较必要,容易出错的地方.(不断更新中) 内存:分为四段,代码段code segment,数据段data segment,栈stack, 堆heap.记住如下图 数据类型: 1.java整形常量默认为int类型,当使用long类型时,因此需要添加“l”或“L”,一般用大写,小写像1.如long i = 888888888888L 2.浮点数时会默认为double类型,因此使用float时需要添加f.如 float i = 0.123f 3.java支持大数运算. 强制转换 flo