面向对象编程//(OOP)

定义格式:poblic class 类名(
        1.成员变量(代表方法,一般是名词):数据类型 名称
        2.成员方法(代表行为,一般是动词)set,get方法
        3.构造器
        3.代码块(后面几节学习)
        4.内部类(以后学习)
(定义类来创建对象)
创建对象:类名 对象名=new 构造器();
//Student s=new Student()

调用构造器 :类名 对像名=new 构造器;

对象的使用:对象名.成员变量

                     对象名.成员方法

面向对象的三大特征:封装,继承,多态。

标准:JavaBean就是所谓的实体类   作用:创建变量,封装数据。

书写要求:成员变量私有化private只能本类访问   必须提供无参数构造器  提供成套的get ,set方法取值和暴露。   


package com.itheima.FaceThing;

public class Student {
        String name;
        double chinese;
        double math;

    public void printTotalScore(){
        System.out.println(name+"的总成绩是"+(chinese+math));
    }
    public void printAverageScore(){
        System.out.println(name+"的平均成绩是"+(chinese+math)/2.0);
    }
}
package com.itheima.FaceThing;

public class Test {
    public static void main(String[] args) {
       Student s1= new Student();//固定格式。
       s1.name="播妞";
       s1.chinese=100;
       s1.math=100;
       s1.printTotalScore();
       s1.printAverageScore();
    }
}

 //虽然在不同的类中,但可以使用同一类中的方法。

如果要播仔的数据,要在创立一个学生对象来封装他(例如:Student  s2=new Student());

先用class设计出对象,然后在另class中“new”出对象。

//对象在计算机中的执行原理。如果变量中存储的是对象的地址,那摩该变量为引用类型的变量。

一个代码文件中可以有多个Class文件,但只有一个可以被public修饰,且被修饰的类,必须作为代码文件名。

编写面向对的一些技巧:

1,this主要是解决变量名称冲突问题。

public class Student {
    double score;
    public void printThis(){
        System.out.println(this);
    }
    public void printPass(double score){
        if(this.score>score){//可以解决两个score的冲突。
            System.out.println("恭喜你,你成功考入哈弗大学。");
        }else {
            System.out.println("对不起,你的成绩不合格。");
        }
    }


}

2.构造器

(1)样子:

public class Stubent {
       /**构造器*/
        public Student(){
    }
}

 其中构造器的名字:public Sudent要和类名相同。

(2)构造器的特点:

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

Stubent s=new Student();

(3)构造器的常见用场景

创建对象时,同时完成对对象成员变量(属性)的初始化赋值。

(4)package com.itheima.FaceThing;

public class Teacher {   //Teacher类文件,没写构造器

 public Teacher(){
     
 }
public Teacher(String name){

 })//一般我们要写出无参数构造器,方便他人使用。
}
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.FaceThing;

public class Teacher {
    public Teacher() {//class类文件中,java会产生无参数构造器
    }
}

 面向对象的三大特征:

一:封装

package com.itheima.FaceThing;

public class Student {
    private double score; //隐藏用private
    public void setScore(double score){//公开用public
        if (score>=0&&score<=100){
            this.score=score;
        }else {
            System.out.println("数据非法");//set进行赋值;get进行返回隐藏值。
        }

    }

    public double getScore() {
        return score;
    }

    public void printPass(){
        System.out.println(score>=60?"成绩及格":"成绩不及格");
    }

}

合理隐藏,合理展现。

package com.itheima.FaceThing;

public class Test {
    public static void main(String[] args) {
        Student s=new Student();
        s.setScore(99) ;
        System.out.println(s.getScore());
        s.printPass();
    }
}

4.实体javabean

是一种特殊形式的类 

(1)这个类的成员变量都要私有,并且要对外部提供相应的get/set方法。

(2)该类中必须有一个公共的无参的构造器。

获取以上两种方法,可以选中右键找到generate,然后,要是对多个成员变量使用此方法,可按住shift键进行全选,点击ok就可以。

FaceThing

TeacherOperate,Teacher,Test.java

5.面向对象的综合案例,模仿电影信息系统。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值