面向过程&面向对象
什么是面向对象
定义
public static void main(String[] args) {
}
public String sayHello(){
return "hello,world";
}
public void hello(){
return;
}
public int max(int a, int b){
return a>b? a:b;
}
调用
package com.oop.demo01;
public class Demo02 {
//非静态方法需要先实例化类,才能调用方法
//static 不用实例化
public static void main(String[] args) {
//对象类型 对象名 = 对象值;
Student student = new Student();
student.say();
}
//static是和类一起加载的
public static void a(){
b();//报错
}
//类实例化之后才存在
public void b(){
}
}
package com.oop.demo01;
//学生类
public class Student {
//非静态方法
public void say(){
System.out.println("学生说话了");
}
}
package com.oop.demo02;
//java------->class
public class Person {
//一个类即使什么也不写,他也会存在一个方法
//显式定义一个构造器
String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
}
/*
public static void main(String[] args) {
//new 实例化了一个对象 alt+enter快捷键
Person person = new Person("aklshkajshd ");
System.out.println(person.name);
}
构造器:
1.和类名相同
2.没有返回值
作用:
1.使用new关键字,本质是在调用构造器
2.实例化初始值
注意点:
1.定义有参构造器之后,如果想使用无参构造,必须显式定义一个无参的构造
快捷键:
alt + Insert
*/
创建对象的内存分析
引用变量 :指向的是堆中的对象
堆存储:对象和数组元素,(new的对象,和数组)方法区是堆中的特殊部分
栈存储:方法和变量的引用 系统调用变量(如:引用变量,基本变量)
,(new的对象,和数组)方法区是堆中的特殊部分