java 面向对象
对象:对象是类的一个实例,有状态和行为。
例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
1.创建对象
类名 对象名=new 类名();
调用对象的属性或方法
对象名.属性
对象名.方法
2.对象的销毁
- 对象超过作用范围将自动销毁
- 对象被赋值为null时
Eg: 类名 对象名=new 类名();
对象名=null;
3.类名的命名规则
类名通常是一个名词,使用大写字母开头。例如:Car、Person、Student。
驼峰命名法: 每个单词的首字母大写,其他字母小写。例如:MyClass、BankAccount。
4.认识成员变量和局部变量
- 成员变量:类中方法外的变量(全局变量)
注:有默认的初始值
根据数据类型不同有默认初始值:
引用类型(Object): 默认值为 null
整型(int): 默认值为 0
字符(char): 默认值为 '\u0000'(即Unicode中的空字符)
布尔类型(boolean): 默认值为 false
局部变量:方法里面定义的变量
注:在使用之前一定要赋值才能使用(没有默认的初始值)
就近原则:当两个变量的同名时,输出离他最近的那个变量
public class cc{
public int age; //成员变量
public void method(){
int age=10; //局部变量
System.out.println(age);
}
}
5.this关键字:区分成员变量和局部变量
this.name成员变量=name局部变量
public class this关键字 {
public static void main(String[] args) {
Dog dog = new Dog("旺财", 5);
}
}
class Dog {
String name;
int age;
public Dog(String name, int age) {
/*使用this关键字调用本类中的属性*/
/*当成员变量和局部变量冲突,可以用这种方法区分*/
this.name = name;
this.age = age;
}
}
6.static关键字
由static修饰的 变量和方法
用于定义静态成员
被称为 静态变量和静态方法
静态成员的调用:类名.静态成员
注意:在静态方法中不可以直接调用非静态的方法
7.final关键字(最后的(指结果):最终的)
凡是被final所修饰的都是不可改变的
final变量:只能被赋值一次
final方法:不能被重写
final类:不能被继承(不能有子类,但是可以有父类)
8.Java的三个主要特征
1.继承
class 父类{ …… }
class 子类 extends 父类{ …… }
一个类只能有一个父类,但可以多层继承
子类拥有父类非 private 的属性、方法。
子类继承父类之后可以调用父类创建好成员
Super关键字
Super.成员 访问父类的成员
2.封装
把属性和方法放到类里面
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
- 修改属性的可见性来限制对属性的访问(一般限制为private)
将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏
public class cc{
private String name;
private int age;
}
3.多态
-
什么是多态
同一个对象,在不同时刻表现出来的不同形态
-
多态的前提
-
要有继承或实现关系
-
要有方法的重写
-
要有父类引用指向子类对象
-
class Animal {
public void eat(){
System.out.println("动物吃饭");
}
}
class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
public class Test1Polymorphic {
/*
多态的前提:
1. 要有(继承 \ 实现)关系
2. 要有方法重写
3. 要有父类引用, 指向子类对象
*/
public static void main(String[] args) {
// 当前事物, 是一只猫
Cat c = new Cat();
// 当前事物, 是一只动物
Animal a = new Cat();
a.eat();
}
}
多态的实现方式
方式一:重写:父类的方法不能满足子类的需要,子类可以修改父类的方法
方式二:接口
1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。
2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。
多态中的转型(应用)
-
向上转型
父类引用指向子类对象就是向上转型
-
向下转型
格式:子类型 对象名 = (子类型)父类引用;
9.抽象类
使用abstract定义的类为抽象类,定义的方法为抽象方法(抽象方法没有方法体,需要被重写)
方法的重写
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
10.构造方法
目的:当一个对象被创建时候,构造方法用来初始化该对象,而普通方法的目的是执行某些操作。
名称:构造方法的名称必须与类名完全相同,并且不能有返回类型。普通方法的名称可以任意命名,并且可以有返回类型。
注意:当创建对象时,系统会自动调用构造方法,没有自定义构造方法时,系统会调用默认构造方法
11.权限访问修饰符
访问范围 private default protected public 同一类 可以访问 可以访问 可以访问 可以访问 同一包中的类 可以访问 可以访问 可以访问 不同包的子类 可以访问 可以访问 全局范围 可以访问 注意:被private所修饰的关键字只能在本类访问
12.接口
-
接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。
-
接口用关键字interface修饰
public interface 接口名 {}
-
类实现接口用implements表示
public class 类名 implements 接口名 {}
-
接口的子类
要么重写接口中的所有抽象方法
要么子类也是抽象类
作者:小淳走四方(一个热爱生活的男孩子)
当你快坚持不住的时候,困难也快坚持不住了
付出和回报不成正比的时候,难道你要躺平吗?我们的人生不应该往前走吗
有问题加我微信:欢迎各位和我一起探讨学习上,甚至是生活上的问题!
微信:18627509101
-
-