自学内容网 自学内容网

Java基础--类和对象

目录

什么是类?

什么是对象

为什么java会设计对象

Java对象该怎么用

程序执行流程

类的加载顺序


什么是类?

        类是构建对象的模板,一个类可以创建多个对象,每个对象的数据的最初来源来自对象

public class Student{
    public int age = 18;
    public String name = "张三";
    public double height = 180.5;
    
    
}                           //创建Student类

Student s = new Student();
System.out.println(s.age);

第一个student:表示数据类型;

s:表示项目或者变量的名称;

new关键字:要求在堆内存中开辟内存空间;

Student():构造器,在创建对象时给对象赋值;

= :赋值操作,将堆内存中的创建的新空间地址赋值给s;

Student s1 = new Student();
Student s2 = new Student();
s2.name = "李四";

方法区存储类信息!!!!!! 

什么是对象

        对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

        看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。对比现实对象和软件对象,它们之间十分相似软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

为什么java会设计对象

在class插入get、set方法

Java对象该怎么用

类信息先放在方法区,main方法入栈,注意this

程序执行流程

图中123所在位置为字符串常量池。

基本数据类型(如整数、浮点数、布尔值等)直接存储在栈内存中,其值直接保存在变量中。当你将一个基本数据类型的变量赋值给另一个变量时,会复制该变量的值,因此每个变量都有其自己的数据副本。‌(如上图flay方法中的 public void flay(int num){};)

引用数据类型(如对象、数组、函数等)存储在堆内存中,而变量中保存的是堆内存中的对象地址。当你将一个引用数据类型的变量赋值给另一个变量时,实际上只是复制了引用地址,而不是对象本身。(如上图run方法中String name = “123”;)

类的加载顺序

public class Test extends Base{
    public Test(){
        System.out.println("test constructor");    
    }
    public static void main(String[] args){
        new Test();    
    }
    static{
        System.out.println("test static");    
    }  
    //static修饰的代码块在main方法执行之前执行,其目的是修饰main方法。
}


class Base{
    static{
        System.out.println("base static");    
    }
    public Base(){
        System.out.println("base constructor");    
    }
}

 结果为

//base static
//test static
//base constructor
//test constructor

注意:static修饰的代码块在main方法执行之前执行,其目的是修饰main方法。

        首先扫描main方法所在的类Test类,又发现Test的父类为Base类(再扫描发现Base类没有父类),然后编译(java文件变为class文件进入方法区),父类先进入方法区,加载Base中的static方法,再子类进入方法区,执行Test中的static。

        然后main方法入栈,子类创建新对象时,父类要先创建对象。所以要先执行Base类的构造器,再执行Test子类中的构造器。


原文地址:https://blog.csdn.net/a13641376265/article/details/145248321

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!