java面向对象编程

1.面向过程(POP)与面向对象(OOP)的区别
面向对象:Object Oriented Programming
面向过程:Procedure Oriented Programming

二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。
2.面向对象的三大特征:封装、继承、多态
举例:
图片说明
3.类与对象
类(Class)和对象(Object)是面向对象的核心概念。
类是对一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
图片说明
图片说明
图片说明
4.对象的内存解析
图片说明
实例代码:

package start;

class PersonTest{
//    属性/成员变量
    String name;
    int age;
    boolean isMale;
//    成员方法
    public void shout() {
        System.out.println("my name is" + name);
    }
}

public class Person {

    public static void main(String[] args) {
        PersonTest p1 = new PersonTest();
//        输出p1对象默认的值,和一位数组默认的值是一样的
        System.out.println("输出p1对象默认的值:");
        System.out.println(p1.name);
        System.out.println(p1.age);
        System.out.println(p1.isMale);
//        对象初始化
        p1.name = "victor";
        p1.age = 10;
        p1.isMale = true;
//        新建两个对象,其中p2是p1的引用,两者共用一个地址,p3是新建的一个地址
        PersonTest p2 = p1;
        PersonTest p3 = new PersonTest();
        p3.name = "boy";
        p3.age = 5;
        p3.isMale = false;
//        改变p1的年龄,输出p2和p3的年龄,则p2的年龄和p1同步改变,p3的不变
        p1.age = 1;
        System.out.println("p1.age =" + p1.age);
        System.out.println("p2.age =" + p2.age);
        System.out.println("p3.age =" + p3.age);

    }

}

编译结果:
图片说明
5.类的变量:成员变量与局部变量
图片说明
两者的区别:
图片说明

全部评论

相关推荐

1、自我介绍2、Agent项目是实习项目还是个人项目?有没有上线?3、拷打实习(10min)4、大模型微调,你的训练数据集是如何构建的?数据量有多大?5、在构建数据集的过程中,遇到了哪些挑战?花了多长时间?6、你之前的实习经历偏后端工程,你未来的职业规划更倾向于纯后端开发,还是希望从事与AI/大模型结合的工作?7、详细讲一下Golang中Channel的概念和作用,它是否是并发安全的?8、Channel和传统的锁(Mutex)在实现并发控制时有什么区别?各自的适用场景是什么?9、讲一下GMP模型10、当P的本地队列为空或者不为空时,它会怎么去调度G(协程)?11、Redis支持哪些数据结构12、为什么Redis的速度这么快13、如何实现一个类似淘宝搜索框的实时商品名称模糊搜索功能?14、实时输入联想与输入完成后点击搜索在技术实现上有什么本质区别?15、实时搜索通常使用什么网络协议(如WebSocket)?你了解或有使用过吗?讲一下16、请详细说明微信扫码登录的完整流程和背后发生的原理17、在微服务架构中,服务发现和负载均衡是如何实现的?18、服务注册中心(如Nacos, Consul)是如何工作的?服务实例如何注册和保活(如通过心跳机制)?19、讲一下Agent中的“长短期记忆”20、什么样的信息应该放在长期记忆,什么样的信息放在短期记忆?21、当对话轮数很多,上下文窗口不足时,有哪些处理策略?(如截断、压缩)22、如果要进行记忆压缩,通常有哪些方法?23、了解过Agent的设计范式吗?有哪些?24、你设计的Agent是怎么实现ReAct模式的?详细讲讲25、手撕:实现一个并发任务处理器:给定一个包含100个任务ID的列表,要求控制最大并发数为3,模拟并发调用某个外部接口(如打印ID)26、反问
三本咋了:很好的面筋
查看24道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务