Java基础:Day08笔记内容 (变量、匿名)

1.成员变量与局部变量的区别
1.作用域:
成员变量的作用域是整个类中都可以访问;
局部变量是的作用域是定义它的{}内, {}中的语句执行完它就被回收;
2.初始值:
局部变量使用前必须手动赋值, 系统不会赋默认值;成员变量系统会赋默认初始值.
3.所在内存区域:
局部变量在方法运行的栈内存里,在栈里,会自动释放;
成员变量在对象里,对象在堆里,成员变量也在堆里,不使用的对象会被垃圾回收机制在不确定的时候回收.

2.匿名对象的使用
(1)当对对象中的功能只执行一次的时候使用。
(2)用于作为实际参数进行传递。
(3)可以用匿名对象调用属性, 没意义.
3.封装
(1)封装的好处:便于重复使用,安全性高。
(2)private(私有的)权限修饰符。

4.private(私有)
private修饰成员变量和成员不能在其他类中直接访问.
注意:私有仅仅是封装的一种体现形式, 封装是一种思想, 就是将具体实现隐藏, 仅对外暴露访问方式.

5.构造方法
(1)用途:用于给对象中属性进行初始化。
A:格式 类名(){code}Person(){}
B:Person(){}public Person(){}
(2)特点 不定义空参构造,系统会自动给一个空参构造,定义了构造方法无论是有参还空参的,系统就不再给空参数的了。
(3)重载构造方法,是根据参数列表来区分是哪个构造方法。

6.this关键字

7.this的作用
1.在方法中区分成员变量和局部变量.this.成员变量;
2.this语句可以在构造方法里调用其他构造方法;
3.在一个方法中,this可以调用本类的其他方法,可以省略:
(1)代表当前对象的引用。使用的时候,谁调用方法,this就代表谁。
(2)什么时候使用this呢?
A:当局部变量和成员变量重名的时候,可以用this进行区分。
B:this调用成员方法
C:this调用本类其他构造, 注意必须放在构造方法第一行。
代码如下:
class Demo10_This {
public static void main(String[] args) {
Person p = new Person();
p.sayHi();
}
}
class Person {
private String name;
private int age;
public Person(){
//name = “tom”; //错误,注意:this语句调用其他构造方法只能是第一句.
this(“无名”,18); //this语句可以在构造方法里调用其他构造方法
}
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public void method1() {
this.method2(); //this可以调用本类的其他方法,当然也可以省略.
//method2(); 也可以.开发常用
}
public void method2() { }
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void sayHi() {
System.out.println(name + “…” + age);
}
}
运行结果:
这里写图片描述

8.创建对象在内存中的详细步骤: Person p = new Person();
1.主方法进栈,给类类型变量p分配空间
2.在堆内存中开辟空间,分配内存地址
3.在堆内存中建立对象特有属性,并进行默认初始化
4.对属性进行显式初始化
5.将内存地址赋给栈内存中的p变量

9.static(静态)特点
随着类的加载而加载,随着类的消失而消失。优先于对象。静态可以被所有对象共享,也可以被类名所调用。
这里写图片描述

10.方法区
方法区是各个线程所共享的内存区域,它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据.
局部代码块&构造代码块&静态代码块:
局部代码块:
作用:控制变量的生命周期
构造代码块:
作用:它可以给所有对象进行初始化,存在于类中。当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复。
静态代码块:
作用:加载驱动器。当类中的方法都被静态化,并且构造方法被private了,这时我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块。
这里写图片描述
这里写图片描述

11.静态的使用
类的成员用static修饰后,就多了一种调用方式,原来对象名.成员可以继续调用,现在,通过类名.成员,也可以调用.
类在什么时候加载?
在第一次使用的时候加载,而后就常驻内存.
这里写图片描述
这里写图片描述

12.单例设计模式应用
让内存中某个类型的对象只能同时存在一个.
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

13.final关键字
final可以修饰类,方法,变量。final修饰的类不可以被继承。final修饰的方法不可以被覆盖。final修饰的变量是一个常量, 只能被赋值一次。
14.final和private区别
final修饰的类可以访问。
private不可以修饰外部类,但可以修饰内部类,讲内部类的时候会演示
final和private修饰的方法子类无法重写, final不允许重写, private重写不了.
final修饰的变量只能在显示初始化或者构造方法初始化的时候赋值一次,以后不能更改。
private修饰的变量,也不允许直接被子类或一个包中的其它类访问或修改,但是他可以通过set和get方法对其改值和取值。

部分笔记内容,整个笔记一共27天,打包下载:
网盘地址——链接:http://pan.baidu.com/s/1c1iem6c 密码:8lj8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值