Java基础02——面向对象基础
一、基本语法
【变量、数据类型、数组、运算符、流程控制语句】
二、面向对象基础与进阶
【类和对象、方法(构造、重载)、继承(方法重写)、抽象类、接口、匿名内部类、泛型、】
三、面向对象高级
【I\O流(文件流、数据流、对象流)、反射、多线程】
四、常用工具类:
【类集合(ArrayList、HashSet、HashMap)、String(切割)、Collections类排序】
作品一:day04:订单(用户类和商品类)
二、面向对象基础
1、类:一个用来封装多个数据的模板
1 public class StudentInfo 2 { 3 String name; 4 String stuNbr; 5 int age; 6 float score; 7 }
2、对象: 根据类模板创建出来的一套具体数据(可以用该类型的变量来引用)
StudentInfo stu = new StudentInfo();
3、构造方法: 用来构造一个对象时执行的初始化逻辑
public class Employee { String id; // 空参构造方法: public Employee() { } // 有参构造方法: public Employee(String p1,String p2,float p3) { this.id = p1; this.name = p2; this.salary = p3; } }
引用构造方法:
// 利用空参构造来创建对象 Employee e1 = new Employee(); Employee e2 = new Employee(); Employee e3 = new Employee(); // 利用有参构造来创建对象 Employee e4 = new Employee("4","d",5600);
4、方法:用来封装一段逻辑
// 无参,无返回值 public void sayHello() { System.out.println("我爱你,真的,很爱"); } // 无参,有返回值 public int getSelfSum()
{
int a=6,b=8; return a+b; } // 有参,无返回值 public void sayHelloToSomeOne(String name)
{ System.out.println(name + "我爱你,真的,很爱"); } // 有参,有返回值,且是静态(类方法:跟对象数据无关系) // 静态方法可以在对象上调,但是没有必要 public static int getOtherSum(int x,int y){ return x+y; } // 有参,有返回值,非静态 (对象方法:跟想象数据有关系) // 非静态方法,必须在对象上调 public int getOtherSum(int x){ return this.a+this.b+x; }
方法重载:同名方法,但是参数列表不一样
5、继承
整体作用:对同一类事物进行类定义时,很多的公共属性和方法,可以抽取到一个父类中;
具体事物类只要继承这个父类,就拥有了它的属性和方法

/** 定义一个父类 Person **/ public class Person{ public String name; public int age; public float salry; public void say(){ } public void eat() { sysout("正在吃饭....") } }
继承语法:
/** 定义一个子类 ChinesePerson **/ public class ChinesePerson extends Person{ // 公共属性和方法就不需要重新定义了(父类中的私有属性和方法不会被继承) // 可以定义特有属性 public String[] friends; // 可以定义特有方法 public void makeFriends(String[] friends){ this.friends = friends; } // 也可以重写父类中的方法 @Override public void eat(){ sysout("你好,吃了吗?"); } }
注意:
1、但不能有抽象方法
2、如果父类中的某个方法被final所修饰,则子类不能再重写该方法
6、抽象类
抽象类一般用来作为一个父类,但是里面可以有方法是抽象的,以让子类来实现。
抽象类和普通类的区别: 抽象类中可以有抽象方法(只有方法定义,没有方法体)
语法:
public abstract class AbstractPerson { public String name; public int age; //abstract 声明这个方法是一个抽象方法 public abstract void say(); public void eat() { System.out.println("正在吃饭......"); } }
继承抽象类的子类
public class Japanese extends AbstractPerson{ /** * 子类中必须实现抽象类中的抽象方法 */ @Override public void say() { System.out.println("雅蠛蝶"); } }
浙公网安备 33010602011771号