java自学之路-----构造函数以及static的简单用法
来源:互联网 发布:淘宝照片修图教程 编辑:程序博客网 时间:2024/06/06 12:05
构造函数:
创建对象时调用,所有类都有构造函数,目的是为了给对象进行初始化,可以有多个构造函数,以重载的形式定义;
类中不定义构造函数的话,该类会产生一个默认的空参数构造函数;如果定义的话默认的构造函数就消失了;
构造函数---对象创建会调用相应的构造函数进行初始化,有且仅调用一次,
一般函数---对象创建后,需要函数功能才调用,可以无限调用;
一般函数不可直接调用构造函数,构造函数内有return语句。
static:
特点{
1.修饰类成员
2.修饰的成员被所有对象共享
3.优先于对象存在,加载类的时候,static成员便存在了
4.调用的时候有两种方式,一种是对象调用,另一种是类名调用
5.修饰的为共享数据,对象中存储的是特有对象
6.只要变量是对象所共有的就可用static修饰
7.如果方法不需要调用非静态成员就可定义为静态
8.类不封装特有数据,可以把方法设为static,该类称工具类,不需要创建对象就能调用。为了阻止其他程序创建该对象,可将该构造函数私有化}
成员变量与静态变量的区别{
1.生命周期不同,成员变量跟着对象存在,消失;静态变量跟着类
2.调用方式,成员变量只能通过对象调用
3.存储位置不同,成员变量时在堆中的对象里面;静态变量在方法区的静态区中}
注意{
由于静态成员跟随着类,还没有对象的时候就可以操作静态成员
1.静态方法只能访问静态成员,非静态方法可以访问静态和非静态
2.静态方法中不可有this和super
}
成员变量与局部变量重名时,用this来调用成员变量
this可用来在构造函数中调用其他构造函数,但必须为构造函数的第一条语句
静态代码块只在加载类的时候执行一次,构造代码块创建一次对象执行一次
public static void main(String【】 args)
1.格式是固定的,只有args可更换,为了让jvm识别;
2.访问权限必须最大
3.static 为了不创建对象直接地执行main方法
4.主函数没有具体返回值
5.main一个被jvm识别的固定名字
6.String[] args:这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
分析下面程序在内存中完成的动作
class Person{private String name = null;private int age = 0;public static String country = "CN"Person(String name){this.name = name}Person(String name,int age){this(name);this.age = age;}public void print(){System.out.println(this.name + " " + this.age);}}class Demo{public static void main(String[] args){Person p1 = new Person("aa", 20);Person p2 = new Person("bb", 21); }}1.main函数进栈,存储变量p1 2.在方法区加载Person类,在静态区存储country的值 3.new Person("aa", 20)堆中分配空间给第一个new 4.调用Person(String name,int age),构造函数进栈 5.this(name)再次调用另一个构造函数,Person(String name)进栈 6.将参数aa赋值给堆中对象的变量name 7.第5步的构造函数出栈 8.将参数20赋值给堆中对象的变量age 9.第4步的构造函数出栈 10.把该对象地址赋值给p1.11.重复3到10步骤 12.main函数出栈
该程序p1和p2共享country的值,构造函数使用this是由于能在局部变量找到就不会去寻找成员变量
- java自学之路-----构造函数以及static的简单用法
- C++转Java自学之路(三)构造代码块、构造函数与static修饰符
- Java的自学之路-构造方法 的作用以及与set方法的区别
- java构造函数以及static关键字
- PHP自学之路------static,global用法
- Java final以及static用法简单demo
- [自学]Java里important static的用法(不常用)
- java自学笔记之static
- Java之static的用法
- Java static的用法以及原理
- Java面试题之static、构造函数 、继承
- java中-关于Static函数的用法
- static的简单用法
- JAVA继承,构造函数的执行以及super(),super的用法
- Java之静态代码块、构造代码块、与构造函数的用法
- Javascript中函数、构造函数以及原型的用法区别
- java之static用法
- java之static用法
- 【读书笔记】代码大全23章:调试
- 埃及分数——迭代加深搜索
- android开发环境搭建
- 【转】MySQL体系结构
- 01-16:SQLite使用方法
- java自学之路-----构造函数以及static的简单用法
- Add Two Numbers (c++)
- Scala入门
- 基于Hadoop2.2.0版本分布式云盘的设计与实现
- 在Tomcat下部署java web项目的简单方法步骤
- 01_14/15:Handler的使用
- 《C++ Primer》学习笔记——C++引用
- USACO Section 4.1 Fence Loops
- 排序算法