黑马程序员_JavaSE的面向对象

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


1:面向对象

(1)面向对象 面向对象是基于面向过程的编程思想
(2)面向对象的思想特点 A:是一种更符合我们思考习惯的思想  B:把复杂的事情简单化  C:让我们从执行者变成了指挥者
(3)类的定义及使用
A:类的定义
成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法 定义格式和以前一样,就是去掉了static。
B:使用类的内容
a:创建对象? 格式
类名 对象名 =  new 类名();
b:如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()
(4)Java程序的开发,设计和特征
A:开发:就是不断的创建对象,通过对象调用功能
B:设计:就是管理和维护对象间的关系

C:特征 a:封装 b:继承 c:多态

2:成员变量和局部变量的区别

(1)在类中的位置不同     成员变量:类中方法外                     局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同 成员变量:在堆中                  局部变量:在栈中
(3)生命周期不同    成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同    成员变量:有默认值      局部变量:没有默认值,必须定义,赋值,然后才能使用
3:封装
(1)隐藏实现细节,提供公共的访问方式
(2)好处: A:隐藏实现细节,提供公共的访问方式 B:提高代码的复用性C:提高代码的安全性
(3)设计原则     把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式
(4)private是封装的一种体现。   封装:类,方法,private修饰成员变量
4:private关键字
(1)私有的意义,可以修饰成员变量和成员方法
(2)特点: 被private修饰的后的成员只能在本类中被访问
5:this关键字
(1)代表当前类的引用对象:哪个对象调用方法,该方法内部的this就代表那个对象
(2)this的应用场景: 解决了局部变量隐藏成员变量的问题
6:构造方法
(1)作用:用于对对象的数据进行初始化
(2)格式: A:方法名和类名相同  B:没有返回值类型,连void都不能有C:没有返回值
(3)构造方法的注意事项 A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
                                        B:如果我们给出了构造方法,系统将不再提供默认构造方法
(4)给成员变量赋值的方式 A:setXxx() B:带参构造方法
(5)标准案例
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;
}
}
7: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

8:继承
(1)把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,
  这多个类就具备了这些内容。这个关系叫继承。
(2)表示及格式
A:用关键字extends表示
B:格式: class 子类名 extends 父类名 {}
(3)继承的好处      A:提高了代码的复用性        B:提高了代码的维护性                       C:让类与类产生了一个关系,是多态的前提
(4)继承的弊端 A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。 B:打破了封装性
(5)Java中继承的特点 A:Java中类只支持单继承 B:Java中可以多层(重)继承(继承体系)
(6)继承的注意事项:  A:子类不能继承父类的私有成员    B:子类不能继承父类的构造方法,但是可以通过super去访问     C:不要为了部分功能而去继承
(7)Java继承中的成员关系
A:成员变量:子类的成员变量名称和父类中的成员变量的时候,子类的方法访问变量的查找顺序:
在子类方法的局部范围找,有就使用。
在子类的成员范围找,有就使用。
在父类的成员范围找,有就使用。
找不到,就报错。
B:构造方法
a:子类的构造方法默认会去访问父类的无参构造方法是为了子类访问父类数据的初始化
b:父类中如果没有无参构造方法,子类通过super去明确调用带参构造
子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
让父类提供无参构造
C:成员方法:子类的成员方法和父类中的成员方法名称一样,通过子类对象访问一个方法的查找顺序:
在子类中找,有就使用
在父类中找,有就使用
找不到,就报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值