复习要点
1.类class
1.1类的创建
类是一个.java文件,类是一个抽象的概念,是属性和方法的一个“容器”
public class Student{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
1.2创建对象
上述所说的类,类似一个“工厂”,它可以帮我们生产“产品”,这个“产品”我们称为对象
对象具有这类所有的属性和方法
充分理解类是生成对象的模板
这句话
public class Test{
public static void main(String[] args) {
// 创建对象 : 利用构造器创建对象,student我们称为Student类的一个实例(对象)
// 该实例,可以调用Student类中的方法来执行功能
// 提示:如果Student中具有static方法,可以直接通过类名调用
Student student = new Student();
// 调用其方法,如果有返回值,可以用相应类型的变量接取
String name = student.getName();
// 调用其方法,如果需要传参,必须传对应类型
student.setName("李四");
}
}
提示:方法的调用,参数,返回值需要反复练习,彻底掌握
1.3方法和对象结合
充分理解方法和对象的前提下,来看他们的结合使用
例题1:
public class Student{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Test{
public void showInfo(Student student){
// 打印输出传入的student对象的name
System.out.println(student.getName());
}
public Student create(Student student){
// 返回值也是一个对象,那调用这个方法将接到这个对象,看下面的test方法
Student student = new Student();
student.setName("王五");
return student;
}
}
public class Main{
public void test(){
Test test = new Test();
Student student = test.create();
System.out.println(student.getName());// 打印输出王五
}
}
例题2:
public class Student{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class DBUtils{
private static DBUtils db;
private DBUtils(){}
public static DBUtils getInstance(){
if(db == null){
db = new DBUtils();
}
return db;
}
public Student getStudent(){
Student student = new Student();
student.setName("mike");
return student;
}
}
public class Test{
public static void main(String[] args) {
// 通过类名调用方法,得到返回值
DBUtils db = DBUtils.getInstance();
// 对象可以调用它所在类的方法
Student sutdent = db.getStudent();
// 可以简写简写
Student sutdent1 = DBUtils.getInstance().getStudent();
}
}
1.4上溯造型(父类引用指向子类对象)
接口:interface,作用相当于父类,但接口与抽象类一样,是不能实例化的
抽象类:abstract class
public interface Father{ // 接口页是纯抽象的
void show(); // 抽象方法
}
public class Son implements Father{
public void show(){
System.out.println("子类实现方法");
}
}
public class Test{
public static void main(String[] args) {
// 上溯造型
Father father = new Son();
father.show(); // 打印输出 子类实现方法
}
}
经典练习题
1.植物大战僵尸控制台版
2.熟练掌握方法的使用,弄清返回值,参数的意义
3.熟练掌握形参是对象,返回值是对象的用法
4.什么是方法重写
当一个子类继承一个父类时,它同时继承了父类的属性和方法。子类可以直接使用父类的属性和方法,如果父类的方法不能满足子类的需求,则可以在子类中对父类的方法进行重写(或覆盖)。
5.抽象类和接口有什么区别
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板
接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情
6.书写单例工厂
public class Singleton {
private final static Singleton INSTANCE = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return INSTANCE;
}
}
public class Singleton {
private static Singleton singleton;
private Singleton() {}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
singleton = new Singleton();
}
}
return singleton;
}
}
网友评论