Java学习笔记5

类和对象

类(class)是既包括数据又包括对数据的操作的封装体。是许多对象的一个“模板”,是对某种类型的的对象定义变量和方法的原型。

类的声明:

class类名<泛型>[extends父类] [implements 接口列表]{

	成员变量的声明;

	成员方法的声明;

}

示例:简单学生类的定义

public class SxtStu {
    //属性(成员变量)
    int id;
    String sname;
    int age;  
    //方法
    void study(){
        System.out.println("我正在学习!");
    }  
    //构造方法
   SxtStu(){
   }
}

注:一个源文件必须有且只有一个public class,并且类名和文件名保持一致!

对象

对象(实例)是类的实例,任何一个对象都属于某个类。对象是动态的,每个对象都有自己的生命周期,都经历一个从创建、运行到消亡的变化过程。对象使用后将被完全销毁,释放所占的储存单元。

对象的创建

对象 = new 类的构造方法([参数列表]);

如:

s = new Student;

对象引用变量和调用方法:

对象.成员变量;

对象.成员方法([参数列表])

Java的内存分析

栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)。栈的存储特性是“先进后出,后进先出”,栈是由系统自动分配,速度快!栈是一个连续的内存空间。

堆是一个不连续的内存空间,分配灵活,速度慢。堆用于存储创建好的对象。

方法区(静态区)

方法区实际也是堆,用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)

示例:模拟学生使用电脑学习

class Computer {
    String brand;  //品牌
}
public class SxtStu {
    // field
    int id;
    String sname;
    int age;
    Computer comp;
    void study() {
        System.out.println("我正在学习!使用我们的电脑,"+comp.brand);
    }
    SxtStu() {
    }
    public static void main(String[] args) {
        SxtStu stu1 = new SxtStu();
        stu1.sname = "张三";
        Computer comp1 = new Computer();
         comp1.brand = "联想";
        stu1.comp = comp1;
        stu1.study();
    }
}

示例的内存分析图:

示例来源

构造方法

构造方法(constructor),用于对象的初始化。构造方法为了对对象初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例。

声明格式

[修饰符] 类名(形参列表){
    //n条语句
}

如:

class Point {
    double x, y;
    public Point(double _x, double _y) {
        x = _x;
        y = _y;  
    }
    public class Main{
    public static void main(String[] args) {
        Point p = new Point(3.0, 4.0);
        Point origin = new Point(0.0, 0.0);
    }
}

构造方法中有返回值,但是不能通过return 来返回某个值,若没有定义构造方法,则编译器会自动定义一个无参数的构造函数。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值