java面向对象编程基础

对象:

java程序中的对象:

本质上是一种特殊的数据结构

对象是由类new出来的,有了类就可以创建对象

对象在计算机的执行原理:

  • student s1=new student();
  • 每次new student(),就是在堆内存中开辟一块内存区域代表一个学生对象
  • s1变量里面记住的学生对象的地址

类:

类中定义的变量也叫成员变量(对象的属性) ,类中定义的方法也称成员方法(对象的行为)

成员变量存在默认值(0.0 or null)

一个代码文件,可以写多个class类,但只能一个用public修饰

//用public修饰的class必须成为文件名

对象与对象之间的数据不会相互影响,但多个变量指向同一个对象就会相互影响

this:

this就是一个变量(c++的this是指针),可以用在方法上,来指定当前对象。

构造器:

创建对象时,对象就会调用构造器。

java 复制代码
public student()
        {
            System.out.println("无参构造触发");
        }
       public student(String name,double chinese,double math)
       {
           System.out.println("有参构造被触发");
           this.name=name;
           this.chinese=chinese;
           this.math=math;
       }

构造器的注意事项:

1 类在设计时,如果不写析构器,java会为类自动生成一个无参构造器

2 一旦定义了有参构造器,java就不会为为类自动生成一个无参构造器,需要自己写

以下是一个学生类:

java 复制代码
public class student {
        public student()
        {
            System.out.println("无参构造触发");
        }
       public student(String name,double chinese,double math)
       {
           System.out.println("有参构造被触发");
           this.name=name;
           this.chinese=chinese;
           this.math=math;
       }

        public void printTotalsum()
        {
            System.out.println(name+"的总成绩是"+(chinese+math));
        }
        public void printave()
        {
            System.out.println(name+"的平均成绩是"+(chinese+math)/2.0);
        }
    String name;
    double chinese;
    double math;
    }

实体类:

这个类中成员变量都要私有,且对外要有get(),set(),函数

类中必须有一个公共无参构造器

相关推荐
BaiPeter30 分钟前
ZPL文件预览
开发语言·c++
aiks_yuan1 小时前
Java CPU 100% 怎么排查:JDK 11 起 jstack 自带线程 CPU 时间,不用再 top -H 换算十六进制(JDK 8、11、17 实测)
java
Flynn Liang2 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang3 小时前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j
聪明的笨猪猪3 小时前
实际工程问题:AI生成Redis分布式锁的原子性缺陷导致库存超卖
java·经验分享·面试·ai编程
软件技术NINI4 小时前
基于SpringBoot和Vue的新能源汽车销售推荐系统
java·vue.js·spring boot·后端·汽车·毕业设计·毕设
Flynn Liang4 小时前
LangChain4j 生产级工程骨架:12 个模块 + Docker 一键启动
java·spring boot·langchain·rag·langchain4j
噢,我明白了6 小时前
JAVA中的一些基础应用知识点
java·开发语言
SL_staff6 小时前
私有化低代码不是妥协,而是企业级数字化的自主可控主航道
java
装不满的克莱因瓶6 小时前
【SpringAI Alibaba】ReactAgent结构化输出OutputType与OutputSchema实战
java·人工智能·ai·springai·springaialibaba