Android-Java静态代码块&局部代码块
静态代码块:
静态代码块什么时候执行,是由当前类被加载进内存的时候,什么时候当前类被加载进内存?
答:例如 描述好了Student对象,当 new Student(); 的时候,第一步:是把Student类加载进内存,第二步/或者是后续的工作才是 实例化操作处理等;
描述Student对象/实体:
package android.java.oop05;
public class Student {
private int id = 01;
private String name = "谢宁";
private int age = 90;
private String englishName = "xie lin";
/**
* 静态代码块:当前Student类,被加载进内存时 就会执行此静态代码块里面的主体{}
* 可以说是最先执行的,可以在这里做一些静态成员的初始化工作
*/
static {
System.out.println("静态代码块:当前Student类,被加载进内存时 就会执行此静态代码块里面的主体{}");
System.out.println("");
}
/**
* 构造函数是专门给对象实例化用的:
* new Student(); ---> public Student(){}
* ...
*
* 就算不写构造函数 也会默认有一个无参构造函数;
* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了
*/
public Student() {
System.out.println("无参构造函数,我被new Student()实例化了");
showAllValue();
return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;
}
/**
* 构造函数是专门给对象实例化用的:
* new Student(9); ---> public Student(int value){}
* ...
*
* 就算不写构造函数 也会默认有一个无参构造函数;
* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了
*/
public Student(int value) {
System.out.println("有参构造函数,我被new Student(int类型的值)实例化了 value:" + value);
showAllValue();
return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;
}
/**
* 构造函数是专门给对象实例化用的:
* new Student("刘俊", true); ---> public Student(String value1, boolean value2){}
* ...
*
* 就算不写构造函数 也会默认有一个无参构造函数;
* 一旦写了 无参构造函数/有参构造函数 后 默认隐式的那个构造函数就不见了
*/
public Student(String name, boolean isSuccess) {
System.out.println("无参构造函数,我被new Student(String类型的值, boolean类型的值)实例化了 name:" + name + " isSuccess:" + isSuccess);
showAllValue();
return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;
}
// 打印所有的成员变量值
private void showAllValue() {
System.out.println("id:" + id);
System.out.println("name:" + name);
System.out.println("age:" + age);
System.out.println("englishName:" + englishName);
System.out.println("");
return; // 此方法默认就有这样一句return;隐式的,是可以让方法弹栈/结束;
}
}
main测试方法:
package android.java.oop05;
public class Demo01 {
public static void main(String [] args) {
// new Student(); ---> public Student(){}
Student student1 = new Student();
// new Student(9); ---> public Student(int value){}
Student student2 = new Student(908909);
// new Student("刘俊", true); ---> public Student(String value1, boolean value2){}
Student student3 = new Student("王刚蛋", true);
}
}
执行结果:

局部代码块:
package android.java.oop05;
public class Demo02 {
public static void main(String[] args) {
int age = 99;
double money = 10098903.9;
// ...
/**
* 局部代码块:可以简单的理解为:
* 1.不能调用的方法,不能执行的方法
* 1.没有方法名的方法,没有返回值得方法
* 1.可以放置在方法里面的方法
* 局部代码块在真实开放过程中,用的比较少,但它的作用有:
* 1.写在局部代码块中的属性,外界无法访问;
* 2.可以对复杂/混乱的代码,进校包裹,可读性很强;
*/
{
double superMoney = 999999999999.00;
}
/**
* 此时如果想访问superMoney,就访问不了,因为superMoney放置在了局部代码块中
*/
// superMoney
}
}
Android-Java静态代码块&局部代码块的更多相关文章
- Java 静态代码块&构造代码块&局部代码块
/* 静态代码块. 随着类的加载而执行.而且只执行一次. 作用: 用于给类进行初始化. */ class StaticCode { static int num ; static { num = 10 ...
- java-代码块-局部代码块、构造代码块、静态代码块
1.代码块概述: 在Java中,使用{ }括起来的代码被称为代码块. 2.代码块分类: 根据其位置和声明的不同,可以分为局部代码块,构造代码块.静态代码块和同步代码块(多线程). 3.常见代码块的应用 ...
- cocos2dx 之 android java 与 c++ 互相调用 代码(以百度定位为例子)
在作cocosdx项目移植到android上时,预见各种头痛问题,今天首先就说说如何在 java 中调用c++ 代码. 这里就用百度定位为例吧,也是我项目中的一小块内容.首先,先百度一下 “百度定位s ...
- java基础之静态代码块,局部代码块,构造代码块区别。
java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show( ...
- 夯实Java基础(八)——代码块
在Java中代码块指的是使用”{}”括起来的代码称为代码块.代码块一共分为4种:局部代码块,静态代码块,同步代码块,构造代码块. 1.局部代码块 局部代码块就是定义在方法体内部的代码块. public ...
- java 访问修饰符与代码块
一 访问修饰符 要想本包中的类都可以访问不加修饰符即可: 要想仅能在本类中访问使用private修饰: 要想本包中的类与其他包中的子类可以访问使用protected修饰 要想所有包中的所有类都可以访 ...
- Java中的代码块:局部代码块、构造代码块和静态代码块
代码块 java代码中用{ }括起来的代码段叫做代码块 1.局部代码块 在局部位置,用于限定变量的生命周期 例如,下面代码中的a仅在代码块中起作用,因此会编译报错 class Demo{ public ...
- Java中的局部代码块、构造代码块、静态代码块
局部代码块: 作用:控制变量的生命周期: 在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计 ...
- 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
构造代码块: 在类中定义可以给所有对象进行初始化.局部代码块: 在方法中定义属性的生命周期.静态代码块: 在类中定义用于给类调用时属性的初始化 构造函数与构造代码块的区别: 构造函数是给对应的对象进行 ...
随机推荐
- 06. pt-duplicate-key-checker
| t01 | CREATE TABLE `t01` ( `pkid` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT ...
- read temperature
button1, button2, richtexbox1, serialport1, using System;using System.Collections.Generic;using Syst ...
- PHP TP 生成二维码
vendor('phpqrcode.phpqrcode'); $value = "http://www.baidu.com";//二维码内容 $errorCorrectionLev ...
- SQL Server 查询中文字段返回为空
昨晚维护系统数据时,遇到个奇怪现象.明明数据库里有数据,查询结果就是返回为空.具体情况是这样的,查询工作日志表里关于工作描述的情况,以中文内容匹配工作描述字段,其中匹配内容里包含有空格. 尝试去掉第一 ...
- javascript对象bind()方法兼容处理
bind() 函数在 ECMA-262 第五版才被加入:它可能无法在所有浏览器上运行.你可以部份地在脚本开头加入以下代码,就能使它运作,让不支持的浏览器也能使用 bind() 功能 if (!Func ...
- python学习 day5 (3月6日)
字典映射,{}键值对,key 唯一的 ,可哈希,容器型数据类型 可变的(不可哈希): 字典 列表 集合 都不可做键 不可变的(可哈希): 数字 字符串 bool 元组 frozeset() 可以做键 ...
- mysql安装后初始密码
在安装过程中没有任何提示,安装完之后无法登陆 后经查询发现,可以暂时以 mysql -u root -p登陆 此账户没有密码直接enter即可. update user set Password=PA ...
- sql创建备份表和复制数据到备份表
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable; ...
- OpenCV+VisualStudion2017配置
1.创建工程 Ctrl+Shift+n 2.创建.cpp文件 Ctrl+Shift+a 3.打开属性管理器 视图->其他窗口->属性管理器 Debug64右键 属性 4.添加包含目录 VC ...
- Matlab编辑器背景修改
将下段代码如到C:\Users\Peng Chen\AppData\Roaming\MathWorks\MATLAB\R2016a\matlab.prf 先备份.prf,再替代之前的. #MATLAB ...