Java面向对象基础

欢迎关注我的公众号【软件大爆炸】
Java学习中的碎碎念
Java中易忽略的基础知识
Java面向对象基础
Java中的核心类
Java抽象类和接口
Java中的异常
Java中的泛型与集合
常见缩写概念:
面向对象的分析(Oict Oriented Analysis,OOA)、
面向对象的设计( Object Oriented Design,OOD),
以及面向对象编程( Object Oriented Programming,OOP)。
在这里插入图片描述
类和类之间具有一定的结构关系。
类的关系主要有两种:继承关系关联关系。继承关系,是“一般~具体”的结构关系;关联关系是“整体-部分”的结构关系。
更详细的介绍可以参考这位大佬的文章:传送门

面向对象具有以下四个方面的特征:唯一性分类性继承性以及多态性
其中分类性指:将具有一致属性和行为的对象抽象成类,只反映与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

创建一个类的对象都经过如下两步
第一步,声明类的一个变量,即定义该类的一个对象,此时在栈上会分配空间存储对象在堆中的地址(即对象的引用);
·第二步,创建该对象的实际物理空间,即在堆中为该对象分配空间,并把此空间的地址(即引用)赋给该变量(对象名),此步骤是通过使用new关键字来实例化该类的个对象。
例如:Person p; p = new Person();
所有类的对象都是动态分配空间,并且类的成员变量具有默认初始值
在这里插入图片描述
形参之间传递数值的方式有两种:
值传递( call by value)。
引用传递( call by reference)。
当参数的数据类型是基本数据类型时,实参和形参之间是按值传递的。
值传递时会将数值copy一份,实参和形参在内存中占用不同的空间,两者互不影响,因此形参的改变不会影响实参。
引用传递时会通过传递的地址获取其指向的内存空间,进而在原来的内存空间直接进行操作,此时若修改了形参的值,实参也将改变。

构造方法(也称为构造函数)是类的一个特殊方法,用于创建对象时初始化对象中的属性值。前面内容在创建 Person对象时,对象中的属性都被初始化成默认值(数值类型的默认值为0,引用类型默认为nul),如果想在创建对象时给属性初始化其他的值,则需要通过类的构造方法来完成。
这个过程经历了四个阶段
Person p = new Person("xiaoming",15,"zhengzhou");为例来说明
1.首先在栈中生成一个地址变量p
2.在堆中生成一个Person实例,并对各属性内容进行初始化
3.执行构造方法,将构造器属性的值进行赋值
4.将堆中创建的对象的地址用=赋值给p

privateprotectedpublic都是关键字,而 friendly不是关键字,它只是一种默认访问修饰符的称谓而已。

静态成员的限制级别是“类相关”的,“类相关”的静态成员则可以直接通过类名调用(即类名。属性、类名。方法),无须通过声明的实例对象进行访问。
类变量属于整个类,当系统第一次准备使用该类时,系统会为该类的类变量分配内存空间,此时类变量开始生效,直到该类被卸载,该类的类变量所占有的内存才被系统的垃圾回收机制回收;当系统创建该类的对象时,系统不会再为类变量分配内存,也不会再次对类变量进行初始化,即对象根本不拥有类变量,通过对象访问类变量只是一种假象,系统会在底层转换为通过类来访问类变量。因此,不建议通过对象访问类变量。类方法与类变量类似,也是属于类而不属于该类的对象

public class StudentDemo {
    public static void main(String[] args) {
        Student p = new Student(1001, "xiaowang");
        Student.showClassID();
//        p.showClassID();//底层会自动转化成Student.showClassID();
    }
}

class Student{
    private int sid;
    private String name;

    static int calssID = 1;//静态成员变量

    public Student(int sid, String name) {
        this.sid = sid;
        this.name = name;
    }

    public static void showClassID(){
        System.out.println("班级号是"+Student.calssID);
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值