一、成员属性,构造方法,成员方法
1、类名首字母一般大写
2、方法名的首字母一般是小写,使用驼峰法(匈牙利法) myCry, 下划线法 my_cry
3、方法的声明没有函数体(接口,抽象类),数据类型甚至可以是类
4、构造方法(构造函数),a、方法名和类名相同,b、没有返回值,c、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化
一个类可以定义多个构造方法
5、每个类都有一个默认构造方法(构造函数),如果新写了构造函数,则默认构造函数会被覆盖
6、构造方法的主要用处是初始化你的成员属性(成员变量),不要在函数内写方法
二、this,类变量(静态变量)/类方法,四大特征(抽象,封装,继承,多态)
1、this是属于一个具体的对象的,而不是属于一个类,当创建一个对象,this自动指向该对象
this只能在类定义内部使用,不能做外部使用
2、静态变量,可以被该类任何一个对象访问,也可以用类名访问
3、代码区和栈区的区别
4、静态方法(来方法)只能访问静态变量(类变量),非静态方法可以访问静态和非静态变量
5、抽象的概念:
6、封装的概念:
7、四种控制修饰符:private 默认 potected public
8、包的概念:
9、继承:子类最多只能继承一个父类(指直接继承),java中所有类都是Object类的子类
10、方法的重载(overload):函数名相同,方法的参数类型、个数、顺序至少有一项不同,仅仅返回类型不同不能构成重载,仅仅控制访问修饰符可以不同不能构成重载
11、方法的覆盖(override):重写父类的方法
12、多态:指通过指向父类的指针,来调用在不同子类中实现的方法
/** * 演示多态 */ package com.wang; public class Demo5 { public static void main(String[] args) { // TODO Auto-generated method stub //多态 /* Cat2 cat = new Cat2(); cat.cry(); Dog2 dog = new Dog2(); dog.cry(); */ /* Animal2 an = new Cat2(); an.cry(); an = new Dog2(); an.cry(); */ Master master = new Master(); master.feed(new Dog2(), new Bone()); master.feed(new Cat2(), new Fish()); } } //主人类 class Master{ //给动物喂食,使用多态方法就可以使用一个 public void feed(Animal2 an, Food f){ an.eat(); f.showName(); } } class Food{ String name; public void showName(){ } } class Fish extends Food{ public void showName(){ System.out.println("鱼"); } } class Bone extends Food{ public void showName(){ System.out.println("骨头"); } } //动物类 class Animal2{ String name; int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry(){ System.out.println("我是动物总类"); } public void eat(){ System.out.println("动物吃东西"); } } class Cat2 extends Animal2{ public void cry(){ System.out.println("我是猫,喵喵喵"); } //猫吃鱼 public void eat(){ System.out.println("猫喜欢吃鱼"); } } class Dog2 extends Animal2{ public void cry(){ System.out.println("我是狗,汪汪汪"); } //狗吃骨头 public void eat(){ System.out.println("狗喜欢吃骨头"); } }
13、java允许父类的引用变量引用它子类的实例(对象) Animal2 animal = new Cat2() 这种转换是自动完成的
14、子类转父类,父类转子类