面向对象

来源:互联网 发布:浙江日报撤资淘宝天下 编辑:程序博客网 时间:2024/06/05 07:37

一、类的定义及使用

类:是一组相关的属性和行为的集合。是一个抽象的概念。

使用类中的内容
a:创建对象的格式
类名 对象名 =  new 类名();
b:如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()

二、成员变量和局部变量的区别
(1)在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同
成员变量:在堆中
局部变量:在栈中
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
成员变量:有默认值(0或者null)
局部变量:没有默认值,必须定义,赋值,然后才能使用

三、private关键字
(1)私有的意义,可以修饰成员变量和成员方法
(2)特点:
被private修饰的后的成员只能在本类中被访问
(3)private的应用:
以后再写一个类的时候:
把所有的成员变量给private了
提供对应的getXxx()/setXxx()方法去对private修饰的变量进行赋值和调用

例:public void setName(String name){

this.name = name;

}

public String getName(){

return name;

}

四、构造方法
(1)作用:用于对对象的数据进行初始化
(2)格式:
A:方法名和类名相同
B:没有返回值类型,连void都不能有
C:没有返回值

(3)构造方法的注意事项
A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
B:如果我们给出了构造方法,系统将不再提供默认构造方法

(4)给成员变量赋值的方式
A:setXxx()
B:带参构造方法


五、标准案例
class Student {
private String name;
private int age;

public Student(){} //无参构造

public Student(String name,int age) { //带参构造
this.name = name;
this.age = 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;
}
}

测试:
class StudentDemo {
public static void main(String[] args) {
//方式1(利用setXxx()方法进行赋值,然后用getXxx()方法输出)
Student s1 = new Student();
s1.setName("张三");
s1.setAge(27);
System.out.println(s1.getName()+"---"+s1.getAge());

//方式2(利用带参构造进行赋值,然后用getXxx()方法输出)
Student s2 = new Student("李四",30);
System.out.println(s2.getName()+"---"+s2.getAge());
}
}

六、static关键字
(1)静态的意思。可以修饰成员变量和成员方法。
(2)静态的特点:
A:随着类的加载而加载
B:优先于对象存在
C:被类的所有对象共享
举例:饮水机和水杯的问题思考
D:可以通过类名调用
既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
(3)静态内容存储在
方法区的静态区
(4)静态的注意事项;
A:在静态方法中没有this对象
B:静态只能访问静态
(5)静态变量和成员变量的区别
A:所属不同
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
B:内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
C:生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用
(6)main方法是静态的
public:权限最大
static:不用创建对象调用
void:返回值给jvm没有意义
main:就是一个常见的名称。
String[] args:字符串数组,可以接收数据,提供程序的灵活性
格式:java MainDemo hello world java
 java MainDemo 10 20 30

七、代码块

(1)用{ }括起来的代码。
(2)分类:
A:局部代码块
用于限定变量的生命周期,及早释放,提高内存利用率。
B:构造代码块
把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。
C:静态代码块
对类的数据进行初始化,仅仅只执行一次。
例:static{
}
(3)静态代码块,构造代码块,构造方法的顺序问题?
静态代码块 > 构造代码块 > 构造方法

代码块执行顺序示例:

/*
写程序的执行结果。

林青霞都60了,我很伤心
我是main方法
Student 静态代码块
Student 构造代码块
Student 构造方法
Student 构造代码块
Student 构造方法
*/
class Student {
static {
System.out.println("Student 静态代码块");
}

{
System.out.println("Student 构造代码块");
}

public Student() {
System.out.println("Student 构造方法");
}
}


class StudentDemo {
static {
System.out.println("林青霞都60了,我很伤心");
}

public static void main(String[] args) {
System.out.println("我是main方法");

Student s1 = new Student();
Student s2 = new Student();
}
}

八、继承

(1)把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,
  这多个类就具备了这些内容。这个关系叫继承。
(2)Java中如何表示继承呢?格式是什么呢?
A:用关键字extends表示
B:格式:
class 子类名 extends 父类名 {}

(3)继承的注意事项:
A:子类不能继承父类的私有成员(被private修饰的成员)
B:子类不能继承父类的构造方法,但是可以通过super去访问
C:不要为了部分功能而去继承

(8)Java继承中的成员关系
A:成员变量
a:子类的成员变量名称和父类中的成员变量名称不一样,查找相应的成员变量
b:子类的成员变量名称和父类中的成员变量名称一样,访问顺序如下:
子类的方法访问变量的查找顺序:
子类方法的局部范围找,有就使用。
子类的成员范围找,有就使用。
父类的成员范围找,有就使用。
找不到,就报错。
B:构造方法
a:子类的构造方法默认会去访问父类的无参构造方法
是为了子类访问父类数据的初始化
b:父类中如果没有无参构造方法,怎么办?
子类通过super去明确调用带参构造(根据参数的类型和数量决定调用的那个带参构造)
子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
让父类提供无参构造
C:成员方法
a:子类的成员方法和父类中的成员方法名称不一样
b:子类的成员方法和父类中的成员方法名称一样,怎么访问?
通过子类对象访问一个方法的查找顺序:
在子类中找,有就使用
在父类中找,有就使用
找不到,就报错

九、final关键字
(1)是最终的意思,可以修饰类,方法,变量。
(2)特点:
A:它修饰的类,不能被继承。
B:它修饰的方法,不能被重写(Override)。
C:它修饰的变量,是一个常量。
(3)面试相关:
A:局部变量
a:基本类型 值不能发生改变
b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的
B:初始化时机
a:只能初始化一次。
b:常见的给值时机
定义的时候。(推荐)
构造方法中。


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 星三角降压启动 电脑无法启动 汽车没电启动 星三角启动接线图 开机启动项设置 电脑未正确启动 无钥匙启动系统 windows未能启动 汽车启动电源 汽车启动继电器 远程启动汽车 汽车远程启动 手机启动汽车 汽车启动电池 一键启动改装 遥控启动汽车 汽车无钥匙启动系统 电脑无法启动怎么办 汽车一键启动没反应 凯美瑞一键启动多少钱 智能一键启动 电脑无法启动windows 电脑启动后黑屏 汽车一键启动什么牌子好 一键启动怎么用 一键启动车钥匙 爱斯达一键启动 迈腾一键启动 一键启动有用吗 速腾一键启动 众行一键启动 电脑开机不启动 汽车应急启动电源拆解 普拉多一键启动 硬盘启动不了 一键启动的车 荣威350一键启动 电脑不能启动 一键启动系统 大功率电机启动方式 ghost启动u盘