黑马程序员技术交流社区
标题:
新人贴
[打印本页]
作者:
混世魔王
时间:
2017-12-27 17:47
标题:
新人贴
一到六天学习的还算顺利,感觉还好!但从第七天后:
.面向对象初识
面向过程强调的是功能行为,面向对象是相对面对过程而言的,面向对象将功能封装成对象,强调具备了功能的对象。面向过程和面向对象都是一种编程思想。
万物皆对象,凡是真实存在的个体都是对象
(1)分析该系统中包含哪些对象
(2)明确每个对象可以做什么
(3)明确各个对象之间的关系
面向对象的特征——继承、封装 、多态
以后的开发过程就是找对象来用,没有对象,就创建一个对象。
找对象,建立对象,使用对象,并维护对象的关系。
类和对象的关系:
类:就是对现实生活中事物的描述,是属性和行为的集合,可以理解为一张图纸,是 一个抽象的概念
对象:就是这类事物,实实在在存在的个体。
想要描述:提取对象中共性内容。对具体的抽象。
映射到Java中描述就是class定义的类。类中属性即成员变量,行为即成员函数,定义类就是定义类的成员(成员变量+成员函数)
具体对象就是对应Java在堆内存中用new建立实体。
格式: 类名 对象名=new 类名();
成员变量:对象名.成员变量;
成员方法:对象名.成员方法();
成员变量和局部变量的区别
定义位置的区别:成员变量定义在类中,方法外;局部变量定义在方法中,或者是方法的形参
初始化值的问题:成员变量有默认初始化值;局部变量没有默认初始化值,必须定义后赋值才能使用。在使用变量的时候,首先在局部范围找,没有的话在成员变量找,
在使用过程中,遵循一个就近原则存储位置的区别:成员变量定义在堆中,随着对象的存在而存在,随着对象的消失而消失;局部变量存储在栈中,随着方法的调用而
存在,随着方法调用完毕而消失
匿名对象
匿名对象是对象的一种简化方式
格式:new 类名()
调用:new 类名(). 成员名称;
使用情况:1.只使用一次的时候;2.作为实参传递给方法;
2.封装
是指把不需要让外界知道的信息隐藏起来,尽可能隐藏对象的字段和实现细节,仅对外提供公共访问方式。
优点:将变化隔离,便于使用,提高重用性和安全性
封装机制在程序中的体现是:把描述对象的状态用字段表示,描述对象的行为用方法表示,把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,
也不允许任意调动其内部的功能方法。
访问权限修饰符
private 类访问权限:本类内部可以访问,不能继承到子类;
default 什么都不写,包访问权限:本类内部可以访问,同包其他类也可以访问,同包可继承;
protected 子类访问权限:本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类;
public 公共访问权限:任何地方都可以访问,能继承到子类;
.this关键字
this代表其所在函数所属对象的引用。换言之,this就代表本类对象的引用。谁调用,this就代表谁。每一个成员方法里面都有一个this代表当前对象。
什么时候用this:1.当函数内部需要用到调用该函数的对象时,如this.name=name;
2.构造方法中相互调用,但是此时this([参数])必须写在构造方法第一行。
this不能用在static修饰的方法里和static修饰的代码块里;
以及后面的String方法调用完全不会用;太抽象。每天课程又这么多,有点吃力!
package com.itheima;
public class Student {
private String name;
private int age;
public Student(){
}
public Student(String name){
this.name=name;
}
public Student(int age){
this.age=age;
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public void show(){
System.out.println("学习使我快乐");
System.out.println(age);
}
}
特别是构造方法调用,和面向对象关系真的搞不懂!
还需继续努力!
作者:
Yin灬Yan
时间:
2018-1-9 22:16
我来占层楼啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2