面向对象编程基本思想:1、抽象客观实物;2、创建实例(对象)
1、java的最小元素:变量、可执行语句
变量可以放在任何地方;可执行语句只可放在方法里和代码块内,一堆括号
2、java 运行必须要有一个引用类型(接口或者类)
对象:去承载自身的一些数据,被new出来的都是对象,能被new的是普通类
类:简化对象的创建,为对象提供统一的模板,找到对象的共性
参数:内部信息不够的时候,就需要设计调用参数
public class demo {
private String name;
// java写法,先求助在内(成员变量)
pubilc String getName() {
return name;
}
// 内部信息不够的时候,就求助于外(参数)
[public] void setName (String name) {
This.name = name;
}
}
class{ // 类里面放的东西
int a; // 成员变量,表示对象的数据特征
static {
// 静态代码块:对静态常量/变量进行预处理,优先级最高,类加载(JVM)时执行一次,也只执行一次。
}
{
// 普通代码块,构造方法之前,对成员变量进行预处理,在对象创建时(执行构造方法前)自动执行一次,
// new前执行
}
[Public] demo {
1、构造方法名称与类名完全相同,
2、当使用new关键字时构造对象会自动调用构造方法进行成员变量的初始化工作
3、子类继承父类时,在子类里面会赠送一个super方法
// 无参构造方法用super时,自动继承Object类
// 默认构造方法:当一个类中没有自定义的构造方法时,编译器会自动添加一个空构造方法
}
[Public] void sayHello (){
// 成员方法,表示对象的行为特征
}
Pubilc static void main(String[] args){
// 静态方法,工具方法,不创建对象就可以使用
}
// 静态变量/常量:所有对象共用的数据特征(只有一个)
Public static final string logo = "好好学习";
}
封装作用:
1.数据的私有化
2.提供开放的接口跟外界通信
3.业务规则设置(有效性)
Public class ract {
Private double width;
Private double height;
Private double area() { // 有成员变量,就不该传参数了
Return width * height;
}
Pubilc void setWidth(double width) {
if(width <= 0) {
}
this.width = width;
}
pubilc stativ void main(String[] args) {
当类没有定义构造方法的时候,编译器自动添加一个无参构造方法
XXX xxx = new XXX(); // 调用构造方法
}
}
继承作用:
1、快速创建新类
2、有很好的类的层次结构
3、扩展性
4、子类可以独立独立完成自己的事情(重写父类方法)
class Man extends Person {
public Man(String name, int weight) {
super(name, weight);
}
}
Java1.8 JVM
1、属于对象的东西,new出来的东西,放在了堆区(Heap)
2、栈区放临时变量,方法那些,以及标识符,数组,都在栈区
3、常量在常量池(常量池内的常量,被定义之后就只有一个)