Java面向对象

1.类和对象
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
对象是类的实例表现
类是对象的类型
对象是特特定类型的数据

属性:对象具有的各种静态特征
方法:对象具有的各种动态行为

2.创建类
包名的推荐命名规范
1.英文字母小写
2.域名的倒序

类名:首字母大写

public class Cat {
    
    //成员属性
    String name;
    int age;
    double weight;
    
    //成员方法
    public void run(){
        System.out.println("跑");
    }
    public void eat(){
        System.out.println("吃");
    }
    
}

3.实例化对象

public class CatTest {
    public static void main(String[] args) {
        //对象实例化
        Cat cat = new Cat();
        cat.run();
        cat.eat();
        cat.name="小强";
        cat.run("小花");

    }
}

4.类的单一职责原则
4.1为什么main方法要放在CatTest中?
面向对象设计,一个类只有一个功能,只干一件事
如果在一个类中承担的功能越多,它的交融和耦合性就越高,被复用的可能性就会降低,就跟我们现实生活中的走路玩手机,开车打电话一样,容易造成事故。
在程序设计中我们尽量将不同的职责放在不同的类中,在这个例子当中我们只是把毛的功能放在了Cat类中,测试相关的功能放在CatTest中,那这就是职责单一的表现
关于面向对象的设计原则不止单一职责原则,还有开闭原则等等。

4.2拆分之后的类是如何进行进行交互的呢?
java是有自己的搜索机制的,当主方法运行的时候,会先在它所在的类里面去查找相关的类是否存在,也就是在CatTest中找Cat类,如果找不到,就会向上去找它同一个包里的,如果能找到允许访问的Cat类,就会进一步找它里面允许访问的属性和方法

5.new关键字

实例化对象的过程可以分为两部分:
1.声明对象 Cat car
在内存的栈空间开辟了一块空间,取名cat,此时还没有初始化,为null

2.实例化对象 new Cat();
在内存的堆空间开辟了一块空间,完成对象相关信息的初始化

基本数据类型会在栈空间占一块内存
引用数据类型则会在栈和堆各占一块内存
在这里插入图片描述
new开辟新的对象空间,假设声明了a对象和b对象且实例化,那么他们指向的内存空间是不同的,互不影响。

6.构造方法
也称构造函数或构造器
1.构造方法与类名相同且没有返回值
2.只能在对象实例化的时候调用
3.当没有指定的构造方法时,系统会自定添加无参的构造方法

7.this关键字
指的是当前对象,谁调用了当前成员,谁就是this。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值