Java面向对象基础(IDEA开发)

一、面向对象编程

1.对象:一种特殊的数据结构(将现实的事物以编程的思想创建)

2.创建对象:利用 class 来封装一个类,类为模板来创建对象

例:创建一个学生类

public class Student {
    // 创建变量来表示对象的属性
    String name;
    double chinese;
    double math;
    // 创建方法来表示对象的行为
    public void printResult()
    {
        System.out.println(name+"的语文成绩是"+chinese);
        System.out.println(name+"的数学成绩是"+math);
    }
}

例:创建对应的对象

public class Test {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "cxk";
        s1.chinese = 98.5;
        s1.math = 102.5;
        s1.printResult();
    }
}

二、对象在程序中的执行原理

1.在程序执行前,将 Test 类和 Student 类都存放在方法区

2.main 方法开始在栈内存运行

3.创建对象时,在堆内存中,对应类开辟一片空间(初始为默认值),同时存储类的地址

4.main 方法以一个变量(s1)来接收在堆内存中开辟空间的地址

5.main 方法可以在栈内存中,通过地址对堆内中的值进行修改

三、this 指针

this 指针:在类的成员方法中使用,用来接收对象本体

作用:区分类中定义的变量名

四、构造器

作用:随对象的创建而调用,通常用于给对象初始化(为对象内的成员变量赋值)

例:在类中创建构造器(构造器可以重载,但不能重复)

public class Student {
    public Student()
    {
        name = "cxk";
        chinese = 0;
        math = 99;
    }
    public Student(String name,double chinese,double math)
    {
        this.name = name;
        this.chinese = chinese;
        this.math = math;
    }
    String name;
    double chinese;
    double math;
    public void printResult()
    {
        System.out.println(name+"的语文成绩是"+chinese);
        System.out.println(name+"的数学成绩是"+math);
    }
}

例:在通过输入不同的变量来调用不同的构造器 

public class Test {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "cxk";
        s1.chinese = 98.5;
        s1.math = 0;
        s1.printResult();
        Student s2 = new Student("wyb",100,100);
        s2.printResult();
    }
}

注意:1)当没有在类中创建构造器时,程序会自动在类中创建一个无参构造器

           2)当创建了一个有参构造器后,程序就不会自动创建无参构造器了(建议自己创建一个无参构造器)

五、封装

封装:用类设计对象处理某一个事物的数据时, 应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
封装的设计规范:合理隐藏,合理暴露

public class Student {
    // 将成员变量设为私有
    private double score;
    // 将成员方法设为公有,通过公有方法来修改和获取私有变量
    public void setScore(double score)
    {
        if(score >= 0 && score <= 100)
        {
            this.score = score;
        }
        else
        {
            System.out.println("数据非法~");
        }
    }
    public double getScore()
    {
        return score;
    }
    public void printPass()
    {
        System.out.println(score >= 60 ? "成绩及格" : "成绩不及格");
    }

}

六、实体类(JavaBean)

实体类:一种有一定特殊结构的类

1.这个类中的成员变量都要私有,并且要对外提供相应的getXxx,setXxx方法

2.类中必须要有一个公共的无参构造器

应用场景:软件开发,实现数据和业务处理相分离

补充:IDEA快捷键

           1)Alt+Shift+选中:可以跳行多选

           2)Shift+选中:可以同时选择多个选项

           3)右键的菜单中的Generate选项,可以快捷创建一些结构,如构造器,相应变量的                            getXxx,setXxx方法

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值