定义格式: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.面向对象的综合案例,模仿电影信息系统。