实例化对象的语法
new构造方法(实参列表):
1.new关键字 计算对象内存大小;在堆中申请空间;把空间初始化为0x0
2.执行构造方法 对属性进行初始化
3.把对象的引用赋值给一个引用变量,如果需要:
对象的生命周期
1 2 3 4
1.代表对象刚申请好空间,内部被初始化为0x0
2.代表对象正在执行构造方法对属性初始化部分
3.代表对象的可使用生命周期阶段
4.代表对象已经被标记为垃圾,但可能还有被立即回收的时期
访问对象的属性或者调用对象的方法
1.如果在类的内部(在类的方法中访问类的属性和调用类的方法)
this.属性 访问属性 如果没有出现命名遮挡,直接使用属性
this.name name 其他名字和属性名字一样
大名 小名
调用方法
this.方法名称(实参列表)
this.toString ();
方法名称(实参列表);
toString();
2.r如果在类的外部(在其他类的方法中访问该类的属性和调用该类的方法)
访问属性
对象的引用.属性名 Person p=new Person(); p.name ;
new Person.name
调用方法
对象的引用.方法名称(实参列表)
Person p =new Person(); p.toString();
new Person.toString();
文件名:Course.java
class Person{}
public class Course{}
javac编译
生成Person.java Course,java
1.一个源文件中只能有一个public 的类,该类的名称必须和文件名一样
2.一个类会生成对应一个class字节码文件
this关键字的使用
1.可以在构造方法中调用其他的构造方法,必须出现在第一行
2.代表该方法被调用时的当前对象的引用
Person p=new Person(); p.toString();
public String toString(){
this; //现在this 就是p所指向的对象的引用
}
定义包:
1.新建目录 目录名就是包名称(全小写,单词之间用下划线分隔)
package hello_world;
定义目录 p1/p2 ;
定义一个类Helloworld
2.使用包
import 包名称.类名称
import p1/p2.HelloWorld;
四种访问限定符:
1.限定符
2.影响的是访问权限
两种情况
1.修饰顶级(Top-level)
2.修饰成员级(Member-level)
说法 定义语法 说明
public public 所有类都有访问权限
package-private 空白 只有一个包的类有访问权限
前两个代表可用于顶级的访问权限
protected protected 留着继承讲
private private 只有本类有访问权限
STATIC(静态)静态方法|静态属性
1.方法
普通方法(方法)|静态方法(类方法)
2.属性
普通属性(属性)|静态属性(类属性)
语法
限定符sataic
被static 修饰的属性/方法 就是静态属性/方法
理解:
普通方法/普通属性 都绑定着一个人隐含的对象(this)
static的含义是和对象解绑
静态属性不在保存在对象(堆区)中,而是保存在类(方法区)中
静态方法调用时,没有隐含着的对象,所以也就无法使用this关键字
class Person{
String name="小比特";
String toString(){
return this,name;
}
static Person createPerson(){
return newPerson();
}
}
Person.createPerson();
访问静态属性/调用静态方法语法
内部:
属性名称;
类名称.属性名称;
this.属性名称;//保证当前不是静态属性
方法名称(实参列表);
类名称.方法名称(实参列表);
this.方法名称(实参列表);//保证当前方法不是静态方法
外部;
类名称.属性名称
对象的引用.属性名称
类名称.方法名称(实参列表);
对象的引用.方法名称(实参列表)
强调:
静态方法没有this.,,没有隐含着的对象的绑定
1.不能访问普通属性(相当于隐式使用this)
2.不能调用普通函数
表现出来的特性:
1.一个类的所有的对象,是可以共享静态属性的;
属性的初始化:(发生在对象实例化的时候)先执行 定义时初始化int a=10; 和构造代码块{a=10;}(按顺序),再执行构造方法Person () {a=10;}
静态属性的初始化“(类被加载的时候)发生在实例化前
1.定义时初始化
static int a=10;
2.静态构造代码块
static {
a=20;
}
类的信息一开始是以字节码(bytecode)*.class的形式保存在磁盘上
类的加载过程就是 类加载器(classloader)在对象的目录上找到指定类的字节码文件,并且进行解析,然后放到内存的方法区的过程。
类只有被使用的时候才会被加载(一般不会卸载)
1.用类去实例化对象
2.使用静态方法
setter设置和修改
getter取得
to string:没有定义,打印的是地址
system.out.println();
out所属类的方法/out 属性
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。