java学习笔记(四)对象的行为

栈:存储基本的数据类型,和类的实例的引用(内存地址)。

规则:first in,last out(先存进后取出)。局部变量在调用栈中分配内存,当方法执行完成后,这些变量就被抛弃了。

堆:存放动态产生的数据,比如 new出来的对象,而且只保存对象的成员变量。

常量池:例:

String str = "abc";

String str2 = new String("abc");

str,str2的值“abc"就存放在常量池中,而new出来的这个 str2对象存放在堆中,str2中创建

了两个对象,一个存放在堆中,一个存放在常量池中,str和str2一共也创建了两个对象,在常量池中有了一个相同的之后就不会再重新创建了。

方法签名:

访问修饰符:(能否被访问)

本类                    同一包中不同类               不同包                子类

public(公有的)            是                            是                              是                    是

protected(受保护的)    是                            是                              否                    是

default(默认)              是                           是                               否                    否

private(私有的)           是                           否                               否                    否

可选修饰符:static(静态的) , final(最终的) , abstract(抽象的) , native(本地的) , synchronized();

返回值:

方法名:

形式参数列表:

按值调用:工作原理是不管传递给方法的实际参数是什么类型,相关的形式参数都会得到该数据的一份拷贝。

方法重载:当一个类有两到多个同名但是有不同参数列表的方法时,就是方法重载。

例:在一个类中模拟计算器

public class Calculator {

public int multiply(int x ,int y){

System.out.println("这是整数与整数相乘");

return x*y;

}

public doouble multiply(double x , double y){

System.out.println("这是实数与实数相乘");

return x*y;

}

public double multiply(int x ,double y){

System.out.println("这是整数与实数相乘");

return x*y;

}

}

可以传入多个参数。

构造器:用于当对象实例化时,初始化对象中的成员变量。

必须满足如下两个属性:

1.构造器的名称必须与类名相同。

2.构造器不能声明返回值,也不能返回void。

例:

public class Radio{

public int volume;

public float tuning;

public char band;

public Radio(){

System.out.println("在无参构造器中");

tuning = 80.0F;

band = ‘F‘;

volume = 5;

}

public Radio(float t){

System.out.println("在float参数构造器中");

tuning = t;

band = ‘A‘;

volume = 8;

}

}

在有参构造器中可以有多个参数,在不写构造器的情况下,系统会自动写出无参构造器,如果自己写了有参构造器就必须同时写出无参构造器,否则会报错。

构造器的使用:

Radio x = new Radio();   // 这是无参构造器

float station = 100.3F;

Radio y = new Radio(station);  //有参

在构造器中调用构造器this.();有参数的传入参数,调用语句必须是这个构造器中的第一条语句。

时间: 2024-11-05 18:41:26

java学习笔记(四)对象的行为的相关文章

java学习笔记四:static的几个角落及小谈多态

最近有点事情,没有及时更新笔记,学习不可弃,总结一下最近的学习,其中重点是static的一些应用,多态是一种设计理念,了解较容易,想如火纯清的确不是一件容易的事情. 对于static,主要有两点是我所学习的. 1.首先简单的介绍一下static的定义.static是静态的意思,就是说这个类变量或者类方法不需要实例化就可以使用.使用static的变量是类变量,也成为静态域(static field).这些是static的基本语义,了解了这些,继续向下看. java核心技术(卷一)对于静态有这样一段

Java学习笔记四(代码块 )

1 代码块的分类:java中的代码块是指使用{}括起来的一段代码,根据位置不同可以分为四种: 普通代码块 构造快 静态代码块 同步代码块 今天主要学习前三种代码块,同步代码块在学习到多线程部分的时候再加学习. 2 普通代码块:直接定义在方法中的代码块,如下: public class CodeSpace { public static void main(String args[]){ { int x = 30; System.out.println("普通代码块x="+x); } /

JAVA学习笔记(四十七)- 事件监听

定义ActionListener接口的实现类实现事件监听 import java.awt.Button; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; /* * 事件监听 */ public class Te

JAVA学习笔记(四十三)- ThreadLocal

死锁 /* * 死锁:多个线程使用不同的锁,每个线程都需要另一个线程持有的锁 * 出现:同步的嵌套 * */ public class Test01 { public static void main(String[] args) { Tom tom = new Tom(); Alice alice = new Alice(); MyThread mt1 = new MyThread(tom, alice, true); MyThread mt2 = new MyThread(tom, alic

Java学习笔记四:static关键字

1.static表示什么? static表示"全局"或者"静态"的意思.在Java中没有全局变量的概念,static 可以简单的理解为全局的,独立的一个功能. (1)当我们在使用 static 修饰成员变量或者成员方法的时候,通常会在Java内存中为这些变量或者方法指定了一块独立的区域(这块区域可能在栈中,也有可能在堆中). (2)如果静态的变量或方法在不出其作用域的情况下,其 引用句柄是不会发生改变的. (3)这块区域是内存共享的,它的引用都指向同一个位置,就是说

JAVA学习笔记(四十九)- Swing相关组件

JFrame组件 import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; /* * Swing是在AWT基础上的扩展 * javax.swing包及其扩展包,组件的命名多以J开关 * * JFrame组件 */ public class Test08 { public static void main(String[] args) { JFrame frame=new JFrame("我的窗体&qu

黑马程序员——JAVA学习笔记四(继承、接口、内部类)

1,    通过extends关键字让类与类之间产生继承关系.多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需定义这些属性和行为,只要继承那个类即可,已存在的类叫做超类,基类,或父类.新类称为子类,派生类,孩子类. 子类可以直接访问父类中的非私有的属性和行为.子类无法继承父类中私有的内容.JAVA不支持多继承,只支持单继承,多实现. 继承提高了代码复用性,让类与类之间产生了关系.为多态提供了前提. 2,    super关键字代表父类中成员变量内存空间的标示.两个作用

Java学习笔记----面对对象

最近开始着手整理自己学习的东西,把面向对象整理出来 什么是面向对象? 起初,"面向对象"是专指在程序设计中采用封装.继承.多态等设计方法. 面向对象的思想已经涉及到软件开发的各个方面.如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design).以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming). 什么是多态? 在面向对象语言中,接口的多种不同的实

Java学习笔记四——运算符

算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可能是小数. double a = 5.2; double b = 3.1; double mod = a%b; System.out.println(mod);//值为2.1 自增运算符++ 自增运算符++有两个要点: ++是单目运算符只能操作一个操作数 ++只能操作在数值型(整数.浮点型)的变量上

面向对象三大特征之封装与static——(Java学习笔记四)

面向对象     编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一般,具体到抽象 三大特征: 封装 继承 多态 构造器:又叫构造方法(constructor),用于构造类的实例 格式:修饰符 类名(形参列表){ //语句 } 构造器的方法名与类名一致 通过new关键字调用 当没有定义构造方法时,系统会自定义一个无参构造函数 构造方法可以重载 作用:构造该类的对象,