1、面向对象的语言
顶级(top-level)
public class A{
成员级别(member-level)
public void method(){
方法级别(method-level)
}
}
system.out.println..语句只能出现在方法级别
2、变量:
1、基本数据类型:
数值类型:整型 byte | short | int | long
浮点 float | double
字符类型 char
布尔类型 boolean
2、引用数据类型:
数组类型引用: int[] a;
类类型引用: Node cur;
接口类型应用: interface IC{} ; IC c;
java中从来没有过对象类型的变量
3、引用是什么【重点】:
引用是指向/找到对象的一个线索,当引用的值是null时表示该引用没有指向任何对象
int[] a={1,2,3}; a是一个int[] 的引用,指向一个int[] 的对象
class A{} class B extends A{} //B是A的子类
1、A a=new A(); a是一个A的引用,指向A的对象
2、B b=new B(); b是一个A的引用,指向A的对象
3、A ab=new B(); ab是一个A的引用,指向B的对象
4、B ba=new A(); ba是一个B的引用,指向A的对象
4是错误的,大类型引用可以指向小类型的对象,小类型引用不能指向大类型的对象
例:设计一个表现多态的,数组类型的引用
Object[] array=new String[10];
4、变量的形式
1、形参(paramters) 栈区 c
2、局部变量(local variables) 栈区 d
3、属性(fields) 堆区 a
4、静态属性(static fields) 方法区 b
public class A{
public int a;
public static int b;
public void method(int c){
int d;
}
}
5、方法的调用过程中,栈所起的作用
变量的生命周期:变量所在的内存块的存活周期
java中的三个内存与区域 :栈区 堆区 方法区 (方法区也可以算栈区)
6、变量的定义语法
【限定符】 变量的类型 变量名称;
属性 基本数据类型 小写开头,下一个单词首字母大写
静态属性 引用数据类型
(1)在内存上为这个变量保留一块区域
(2)用变量名关联到该区域
作用域:空间上,变量名和该区域关系生效的范围(scope)
作用域: 空间上的/静态的
生命周期: 时间上的/动态的
7、关于变量的赋值:
int a=10;
等号左边是个框,右边的值往里装
8、class A extends 父类 implements 接口{
//属性
//静态属性
//方法
//静态方法
//构造方法
//内部类
//静态内部类
}
1、构造方法:注意默认的那个无参构造方法
2、this的使用:1、调用自己的其他构造方法 2、代表指向本对象的引用 3、访问本对象的属性或方法
方法签名:方法名称+形参列表
方法重载 : 方法名称相同,形参列表不同
9、构造对象的语法:
Node node=new Node(1);
new:1、为对象计算所需内存的大小 2、申请空间 3、 初始化0x0
调用定义时初始化/构造代码块/构造方法对属性初始化
代表对象拥有完整生命的时期
没有引用指向该对象,到对象被正在垃圾回收的阶段
10、static只能出现在成员级别
static 和对象进行解绑
(1)静态属性 属性存在对象(堆)上,静态属性存在类(方法区)上
(2)静态方法
Node n1=createList(); //静态方法
Node rhead=new List().reverse(n1);//普通方法
静态方法中 1、不能直接访问属性 2、不能直接调用普通方法
11、访问限定符 :(只能出现在顶级和成员级别,只有public 和 不写 能出现在顶级)
public
/private
/protected
不写/package-private
方法的调用在栈上开辟,但是方法的代码在方法区上
每次方法调用都会有一个调用栈,用完就释放
先构造外部类对象在构造
本文深入探讨Java的面向对象特性,包括类、对象、继承、多态的概念及实现方式。详细解析变量的定义、作用域与生命周期,以及Java中的内存分配与管理,如栈区、堆区和方法区的区别和作用。

被折叠的 条评论
为什么被折叠?



