A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2016-8-11 14:45 编辑


【济南中心】JAVA编程阶梯:基础篇之第七章


前言
前一章主要介绍了面向对象的概念和应用场景,第七章就要深入了解面向对象,如何在程序中体现面向对象的思想。
构造方法
一:概念:给对象的数据(属性)进行初始化
二:特点:a.方法名与类同名(字母大小写也要一样)
b.没有返回值类型
c.没有具体的返回值return
三:构造方法重载:方法名相同,与返回值类型无关(因为构造方法没有返回值),只看参数列表
注:如果没有写出构造方法,系统自动提供一个无参的构造方法,如果我们给出了构造方法,系统不再提供构造方法。
例子:
[Java] 纯文本查看 复制代码
class Student{ 
//下面是构造方法
public Student{
 //无参构造方法
} 
public Person(String name,int age){
 //有参构造方法
} 
}

成员变量
一:赋值
A.通过setxxx()方法
B.通过构造方法
二:例子,还是以学生类为例子
[Java] 纯文本查看 复制代码
class Student{
private String name;
private int age;
//下面是构造方法
public Student(String name,int age){
//构造方法赋值
//this.name = name;
//this.age = age;
}
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
}


创建对象的步骤
Student s = new Student();
1,Student.class加载进内存
2,声明一个Student类型引用s
3,在堆内存创建对象,
4,给对象中属性默认初始化值
5,属性进行显示初始化
6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
7,将对象的地址值赋值给s
static关键字
一:概念:static用于修饰类的成员,如成员变量,成员方法,代码块,被static修饰的成员具备一些特殊性。
二:特殊性
a:随着类的加载而加载
    b:优先于对象存在
        c:被类的所有对象共享
                举例:咱们班级的学生应该共用同一个班级编号。其实这个特点也是在告诉我们什么时候使用静态?
                如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。
                举例:
                        饮水机(用静态修饰)
                        水杯(不能用静态修饰)
                        共性用静态,特性用非静态
        d:可以通过类名调用
                其实它本身也可以通过对象名调用。
                推荐使用类名调用。
                静态修饰的内容一般我们称其为:与类相关的,类成员
三:注意事项
a:在静态方法中是没有this关键字的
        如何理解呢?
                静态是随着类的加载而加载,this是随着对象的创建而存在。
                静态比对象先存在。
    b:静态方法只能访问静态的成员变量和静态的成员方法
        静态方法:
                成员变量:只能访问静态变量
                成员方法:只能访问静态成员方法
        非静态方法:
                成员变量:可以是静态的,也可以是非静态的
                成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
        简单记:
                静态只能访问静态。
四:列子
[Java] 纯文本查看 复制代码
class Student{
static String name;//静态变量
static{
System.out.println("这是静态代码块");
}
public static void sayHello(){
System.out.println("这是静态方法");
}
}
五:静态变量和成员变量的区别
    A:所属不同
        * 静态变量属于类,所以也称为为类变量
        * 成员变量属于对象,所以也称为实例变量(对象变量)
    B:内存中位置不同
        * 静态变量存储于方法区的静态区
        * 成员变量存储于堆内存
    C:内存出现时间不同
        * 静态变量随着类的加载而加载,随着类的消失而消失
        * 成员变量随着对象的创建而存在,随着对象的消失而消失
    D:调用不同
        * 静态变量可以通过类名调用,也可以通过对象调用
        * 成员变量只能通过对 象名调用

main方法的格式详细解释
A:格式
        * public static void main(String[] args) {}
B:针对格式的解释
        * public 被jvm调用,访问权限足够大。
        * static 被jvm调用,不用创建对象,直接类名访问
        * void被jvm调用,不需要给jvm返回值
        * main 一个通用的名称,虽然不是关键字,但是被jvm识别
        * String[] args 以前用于接收键盘录入的

使用JDK提供的帮助文档
A:找到文档,打开文档
B:点击显示,找到索引,出现输入框
C:你应该知道你找谁?举例:Scanner
D:看这个类的结构(需不需要导包)
    * 成员变量    字段
    * 构造方法    构造方法
    * 成员方法    方法

Math类
一:概念:类包含用于执行基本数学运算的方法
二:获取随机数的方法:
public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
童鞋们可以自行验证一下。

这一章是讲面向对象的深入知识点和Math的简单介绍,这些都需要在平常多加练习才能熟练掌握,毕竟面向对象只是一种思想,把这种思想实现的是我们这些编码人。


10 个回复

正序浏览
总结的很全面
回复 使用道具 举报
好贴好贴
回复 使用道具 举报
挺你,棒棒哒
回复 使用道具 举报
theape 中级黑马 2016-8-19 13:23:04
8#
讲的很详细,太感谢了
回复 使用道具 举报
很全 很详细 收藏了 谢谢
回复 使用道具 举报
小鲁哥哥太给力了
回复 使用道具 举报
{:2_36:}{:2_36:}{:2_36:}{:2_36:}{:2_36:}
回复 使用道具 举报
默默的收藏
回复 使用道具 举报
小鲁哥哥辛苦啦!~
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马