Java基础-构造器
来源:互联网 发布:windows 批处理 编辑:程序博客网 时间:2024/06/07 06:50
1.构造器
构造器就是类创建对象的初始化方法。它的名字与类名相同。 假设没有写有构造器的情况下,虚拟机会自动加上一个没有参数的构造器,如果【学Java, 写有构造器,那么虚拟机就不会在加上构造器了。
public class Test1 {public Test1() {System.out.println("我是构造器!");}}
2.构造器重载
构造器就是一个方法,所以它和普通的方法一样也可以做方法重载,换句话说就是构造器的重载。 和方法重载一样构造器重载就是多个一样名字参数类型和参数的个数不同的多个构造器。
public class Test1 {public Test1() {System.out.println("先脱去衣服");}public Test1(String name) {}public Test1(int name) {}}
2.实例块 实例块就是一个划分的代码区域。{ 代码 } 1.它是在构造器之前执行。 2.它和属性初始化一同执行。 3.一个类中可以有很多个实例块。
- 执行过程是按照顺序从上到下执行。
public class Test3 {{System.out.println("我是实例块!");}}
3.this this用3种用法: 1.表示当前的对象。 假设在一个方法中传入的参数名为a1,在实例中也有一个变量叫做a1.如果方法中的参数a1想赋值给类中的a1。官网:www.fhadmin.org 则就需要到this关键字。因为java如果遇到同名的变量就会默认用和你最近的参数。
public class Test4 {String name;// 重名了 使用的规则是 就近原则public Test4(String name) {this.name = name;}}2.当前对象返回public Test4 getTest4() {return this;}
3.构造器转发
注意:静态属性和静态方法参数重名怎么办? 这时就不能用this了。因为this是当前对象。 既然是静态成员那就直接类名点属性名就可以了。 例如:
static String address;static void method(String address) {Test4.address = address;}
4.静态块 static{} 是类加载的时候和静态属性一起执行的。也是按顺序从上往下执行。
5.类的加载 1.在声明静态属性但并没有使用属性时,不会对类进行加载。 使用静态属性时才会对类进行加载。 2.声明或使用常量时都不会对类进行加载。 因为常量的内存【学Java,到凯哥学堂kaige123.com】和类成员的内存不在同一内存内。 3.使用静态方法或new肯定会加载类。 4.//加载类 class.forName( 包名.类名 )
怪题:
main方法中,new Test1();,然而Test1类中又new Test1,因为new对象的时候肯定会加载类,然而加载类其实就是加载静态属性,所以这就成了死循环。报出方法嵌套调用溢出的错误。 java.lang.StackOverflowError
- [Java基础] 构造器
- java基础,构造器
- Java基础-构造器
- Java基础------构造器
- java基础入门-构造器-构造函数
- java基础之构造器
- Java基础复习---对象构造(构造器)
- Java基础之构造器Constructor
- Java基础——构造器
- java基础-面向对象-构造器
- Java基础之构造器调用顺序
- Java基础----构造器与方法重载
- JAVA基础-构造器和this(5)
- JAVA基础:构造器的理解
- Java基础——构造器
- JAVA 基础 - 构造函数
- JAVA基础/构造方法
- java基础-构造方法
- A
- makedown 使用方法
- RecyclerView的item高度占了整个屏幕高度的问题
- Ajax跨域问题解决
- 第四篇:JAVA之面向对象(上)
- Java基础-构造器
- 数组的应用
- C++设计模式 -> 创建型 -> 建造者(Builder)
- Java注解学习四:@Inherited的使用
- [Zabbix] Memcached 监控
- bzoj3230 相似子串(SA+lcp+二分)
- 选取截面一圈点然后沿法线生成对应形状的巷道
- 输入学生姓名,形成数组,输入范围查找学生
- 关于SVN .a文件上传的问题