面向对象
分类的思想模式;以类的方式组织代码,以对象的组织封装数。
三大特性
封装:吧数据封装起来,对外提供一个小口,来访问
继承:A类继承B类便会拥有B类的所有特性。
多态:接口的多种不同的实现方式即为多态;
静态方法与非静态方法
这里用两个不同的class写
静态
package oop; public class student { //静态方法 public static void say () { //静态方法 System.out.println("静态方法测试"); } } //--------------------------------------------------- package oop; public class demo01 { public static void main(String[] args) { student.say(); } }
非静态
package oop; public class student { //静态方法 public void say () { //静态方法 System.out.println("动态方法测试"); } } //---------------------------------------------------- package oop; public class demo01 { public static void main(String[] args) { //调用的时候需要实例化这个类 //对象类型 对象名=对象值 student s1=new student(); s1.say(); } }
类与对象的创建
类:是一种抽象的数据类型,他是对于某一类事物整体描述(植物、动物、手机......)
对象:抽象概念的具体实例。(张三、李四......)
package demo02; //学生类 public class Student { //属性:字段 String name; int age; //方法 public void student(){ System.out.println(this.name+"学生在学习"); } } //------------------------------------------------------ package demo02; //一个项目中只有一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,需要实例化 //类实例化后会返回一个自己的对象 //xiaoming对象就是一个Student类的具体实例 Student xiaoming=new Student(); Student xiaohong=new Student(); xiaoming.name="小明"; xiaohong.name="小虹"; System.out.println(xiaoming.name); System.out.println(xiaohong.name); } }
构造器详解
package demo02;
public class Person {
//一个类即使什么也不写,他也会存在一个方法
//显示的定义构造器,如下所示:
public Person(){
}
}
构造器作用
使用new关键字,本质是在调用构造器
构造器一般是在初始化值
例:无参构造
package demo02; public class Person { String name; public Person(){ this.name="lh"; } } //--------------------------------------------------------- package demo02; //一个项目中只有一个main方法 public class Application { public static void main(String[] args) { Person person=new Person(); System.out.println(person.name); } }
例:有参构造
有参构造时,把无参构造的方法里面空上。
package demo02; public class Person { String name; //无参构造 public Person(){ } //有参构造 public Person(String name){ this.name=name; } } //--------------------------------------------------------- package demo02; //一个项目中只有一个main方法 public class Application { public static void main(String[] args) { //下面会调用student类里面的有参构造方法;如果删掉无参构造的构造器,会报错 Person person=new Person("lh"); System.out.println(person.name); } }
构造器的快速生成
快捷键:alt+insert
package demo02; public class Person { String name; int age; public Person(int age) { this.age = age; } public Person(String name) { this.name = name; } }