面向对象编程基础
2019-03-01 13:59
113 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43668388/article/details/88028079
this关键字
当类中的成员变量与成员方法中的参数重名时,使用this,来使用类中的成员变量;不用的话,就是成员方法中的参数
public class test { String name="abc"; public void showName(String name) { System.out.println(name); } public static void main(String[] args) { test book=new test(); book.showName("123"); } } =>123 System.out.println(this.name); =>abc
无参构造方法中使用this关键字调用有参的构造方法
public EggCake() { this(1); } public static void main(String[] args) { EggCake cake1 = new EggCake(); }
静态变量
当类首次被加载时,静态变量就被分配到内存中,直到程序结束才会释放,一旦改变后,之后的其他也会变。
静态常量
命名时所有字母大写
final static double PI=3.1415926;
静态代码块
public class test { static String name; //静态代码块 static { System.out.println(name + "静态代码块"); } //非静态代码块 { System.out.println(name+"非静态代码块"); } public test(String a) { name = a; System.out.println(name + "构造方法"); } public void method() { System.out.println(name + "成员方法"); } public static void main(String[] args) { test s1;// 声明的时候就已经运行静态代码块了 =>null静态代码块 test s2 = new test("s2");// new的时候才会运行构造方法 =>null非静态代码块 s2构造方法 test s3 = new test("s3"); =>s2非静态代码块 s3构造方法 s3.method();//只有调用的时候才会运行 =>s3成员方法 } }
1)静态代码块由始至终只运行了一次。
(2)非静态代码块,每次创建对象的时候,会在构造方法之前运行。所以读取成员变量name时,只能获取到String类型的默认值mull
(3)构造方法只有在使用new创建对象的时候才会运行。
(4)成员方法只有在使用对象调用的时候才会运行。
(5)因为name是static修饰的静态成员变量,在创建s2对象时将字符串"s2”赋给了name,所以创建s3对象时,重新调用了类的非静态代码块,此时name的值还没有被s3对象改变,于是就会输出“s2 非静态代码块
相关文章推荐
- 学习笔记☞ python 基础(python3)【七】(面向对象编程-3)
- python面向对象编程基础
- JAVASE基础_03.面向对象编程--final
- day-010--面向对象编程基础
- Python 之 基础面向对象编程
- C++笔记:面向对象编程基础
- [.net 面向对象编程基础] (18) 泛型
- Java基础--面向对象编程
- JavaScript面向对象编程(1)-- 基础
- JavaScript面向对象编程(1)-- 基础
- JS面向对象编程基础部分(4) 4.2
- javascript面向对象编程的学习(基础)
- OOP(面向对象编程)基础一 —— Java语言
- 大话设计模式感悟(1)——OOP(面向对象编程)基础
- Python面向对象编程基础解析(二)
- python基础-----面向对象编程
- [.net 面向对象编程基础] (1) 开篇
- 黑马程序员————OC面向对象编程基础总结
- [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换
- python面向对象编程基础