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中的静态代码块、构造代码块、构造函数、局部代码块区别
构造代码块: 在类中定义可以给所有对象进行初始化.局部代码块: 在方法中定义属性的生命周期.静态代码块: 在类中定义用于给类调用时属性的初始化 构造函数与构造代码块的区别: 构造函数是给对应的对象进行 ...
随机推荐
- Luogu 1273 有线电视网 - 树形背包
Description 树形背包, 遍历到一个节点, 枚举它的每个子节点要选择多少个用户进行转移. Code #include<cstring> #include<cstdio> ...
- linux安全分析
history 查看历史命令 last | grep -i norco //最后一次登录时间
- Spring PropertyResolver 占位符解析(一)API 介绍
Spring PropertyResolver 占位符解析(一)API 介绍 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html ...
- 编程学习笔记(第四篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(4)meta、元与元模型、软件方法的未来发展
一.meta.元与元模型 1.元. "元" 英语是 Meta,meta在不同的行业领域有不同的翻译,在 IT 领域一般来说 Meta 是翻译成元,主要因为在 IT 中Meta ...
- Maximum Average Subarray II LT644
Given an array consisting of n integers, find the contiguous subarray whose length is greater than o ...
- wifi功能模块
1. API 10 Android2.3.3 不支持wifi代理设置. 2017-09-29 原来addOrUpdateNetwork之前,wifi配置并不会立即生效,要想立即生效,就要 wifiMa ...
- mybatis不报错,但是查询结果为0
[转载]https://blog.csdn.net/shenzhenNBA/article/details/46673327 在用MyBatis操作数据库的时候相信很多人都用到,当在判断null, 大 ...
- Git及其二次开发
Git And TFS: 将 Visual Studio 用于 Git:http://msdn.microsoft.com/zh-cn/library/hh850437.aspx TFVC 和 Git ...
- Java课堂测试01及感想
上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...
- oracle merge into语法
oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入 不需要先去判断一下记录是否存在,直接使用merge into oerge into 语法: MERGE ...