java之面向对象2
来源:互联网 发布:怎样删除淘宝评价 编辑:程序博客网 时间:2024/06/06 03:59
构造方法
作用:对对象的属性(成员变量)进行初始化的
写法:
1.构造方法名与类名完全相同相同(大小写必须一样)
2.没有返回值类型(连void都不写)
3.没有返回值(没有 return)
public class Demo01 { public static void main(String[] args) { //创建一个Person对象 // 构造方法 系统帮你再帮你调用 在初始化对象时 // 无法自己来调用构造方法(不能使用对象点方法) Person p = new Person(); // 测试有参数的构造方法 // 理解:初始化时后面那对小括号 // 填参数调用的就是有参构造函数 // 没填参数反之 调用无参构造方法 // 思考:为什么这么理解 //函数的重载 参数不同(参数顺序 参数个数 参数类型) //切记 参数的名字不同 不是函数的重载 //构造方法 也符合函数的重载 Person p2 = new Person("王五",100); p2.sayHi(); // }}class Person{ String name; int age; // 无参数构造方法 public Person(){ name = "张三"; age = 18; } //需求 写一个有参数的构造方法 public Person(String name, int age) { this.name = name; this.age = age; } public void sayHi() { System.out.println(name+"----"+age); }}
构造方法的注意事项
1.如果你没写任何构造方法都没写
那么系统会给你提供一个 无参构造方法
2.如果你写了有参的构造方法
这是系统就不再 为你提供无参构造方法
3.如果你想写有参的构造方法 建议你把无参构造方法也写上
静态变量
静态变量调用
- 1.可以适用对象去调用(不推荐)
- 2.静态变量用类名区钓用
- (静态变量不以来对象 因为静态变量加载的时候 对象还没创建)
-
- 思考:静态变量的特点 好处 应用场景 与 成员变量区别
-
- 静态变量的特点:
- 1.随着类的加载而加载
- 2.创建优先于对像存在
- 3.是类创建出来的对象 共享的部分
- 4.可以使用类名去调用
- 好处 :节省内存空间
-
- 应用场景 : 饮水机 水杯
-
*静态变量与成员变量的区别
*1.所属不同
*成员不同: 成员变量属于对象的 又叫对象变量(实例变量)
*静态变量:属于类的 又叫类变量
*2.内存中的存储位置不同 - 成员变量 :存储在堆内存
-
- 静态变量 :存储在方法区的静态区
*3.加载到内存中的时机不同(生命周期不同)
- 静态变量 :存储在方法区的静态区
- 成员变量 :随着对象的创建而创建
- 静态变量 :随着类的加载而加载
*4.调用方法不同
*成员变量:只能适用对象去调用
*静态变量:可以对象调用 但是一般类名去调用 - 内存表现步骤
-
- 1.类加载到方法区
-
- 2.加载到方法区的同时 ,静态变量被加载到方法区的 静态区
- 3.main 函数入栈
- 4.在堆内存中 创建 对象
- 5.把地址赋值给mian函数的 对象
- 6.main 函数 出栈
- 7.结束
- 图示
public class Demo04 { public static void main(String[] args) { Girl g1 = new AVGirl(); g1.name = "丽丽"; Girl.country = "日本"; g1.sayHi(); Girl g2 = new AVGirl(); g2.name = "兰兰"; g2.sayHi(); }}class Girl{ String name; static String country; public void sayHi() { System.out.println(name+"---"+country); }}
静态方法
静态方法 又叫 类方法
public class Demo05 { public static void main(String[] args) { Man m1 =new Man(); m1.sayHi1(); //静态放的调用 使用 类名点方法区调用 Man.sayHi2(); }}class Man{ int num1; static int num2; // 在成员方法中 可以使用成员变量 和静态变量 public void sayHi1() { System.out.println(num1); System.out.println(num2); } //申明一个静态成员方法 // 静态成员方法中 不能使用 成员变量 // 只能使用静态变量 // 简单记 : 静态的方法只能使用静态的变量 和 静态方法 public static void sayHi2() { System.out.println(num1);//报错 System.out.println(num2); }
main方法的解释
public jvm虚拟机调用main 需要访问权限
static jvm虚拟机在调用 main方法时 不要创建对象
main jvm虚拟机在调用的时候 只知道main这个词
使用别的词 系统调不到 注意:main不是关键字
String[] args 原来接受从键盘输入的值0
阅读全文
0 0
- java之面向对象2
- java之面向对象
- java之面向对象
- java之面向对象
- java之面向对象
- java之面向对象
- java 之 面向对象
- Java之面向对象
- Java之面向对象
- JAVA 之 面向对象
- JAVA之面向对象
- Java之面向对象
- Java之面向对象
- java之面向对象
- JAVA之面向对象
- java之面向对象
- Java之面向对象
- java学习之面向对象上(2)
- Java小游戏之猜拳游戏
- [整体二分 并查集]Atcoder AGC002 D. Stamp Rally
- 线程&进程基本概念和Python中线程模块
- CSS组件-搜索框
- 前中序重建二叉树python实现
- java之面向对象2
- Java注解(Annotation)详解(二)——自定义注解
- [博弈]Atcoder AGC002 E. Candy Piles
- 【操作系统学习】(二)同步互斥
- 【嵌入式学习历程12】Linux文件编程
- Android自定义adapter
- 雾计算与边缘计算的区别
- Qt 全局热键的实现
- Leetcode 80.