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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaoMaoLv 初级黑马   /  2017-12-2 19:55  /  742 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

day07
一.面向对象:
面向对象的思想
面向过程(POP):
每一步细节需要自己考虑:  强调的是每一个功能的步骤
代表语言:c
面向对象(OOP):
A:是一种更符合我们思考习惯的思想
B:可以将复杂的事情变得简单化
C:将我们从执行者变成了指挥者
代表语言:java
面向对象案例
买电脑:
面向过程:
我要买电脑---我买电脑的意义----上网查对应的参数信息--去中关村---单价还价---最后电脑买了
面向对象:
我要买电脑-----班长去给我买个电脑---买回电脑就可以了
二.与事物的对应关系
事物      ->  类
事物的属性 ->  类的成员变量
事物的行为 ->  类的成员方法
三.如何创建以及使用类对象
1)类的定义
        * 定义类:
            * `public class 类名 {}`
        * 定义类中的成员变量:
            * `权限修饰符 数据类型 变量名;`
            * 示例: `private String name;`
        * 定义类中的构造方法:
            * `权限修饰符 方法名(参数列表) {方法体}`
            * 示例:
                * 空参: `public Student() {}`
                * 有参: `public Student(String name) { this.name = name; }`
        * 定义类中的get/set方法(getter, setter):
            * `权限修饰符 返回值类型 方法名() {方法体}`
            * 示例:
                * set方法: `public void setName(String name) { this.name = name; }`
                * get方法: `public String getName() { return name; }`
        * 定义其他成员方法
            * 吃饭: `public boolean eat() { syso("吃饭"); }`
2)使用关键字`new
格式: `类名 对象名 = new 类名();
示例: `Student s = new Student()
四.一个对象的内存图演示
建一个对象时, 内存分别存放的内容
    * 栈内存(stack):
    * 进出顺序: 先进后出
    * 存放调用的方法, 方法中有局部变量
    * 堆内存(heap)
     * 存放new出来的对象
     * 成员变量: 在该对象的堆内存中保存一份独立的成员变量, 占有独立的内存空间
      * 正因为都是独立的内存空间, 所以成员变量是属于某一个对象的, 不同对象的成员属性的值可能不相同
     * 成员方法: 只在该对象的堆内存中保存方法区中成员方法的内存地址
    * 方法区(method area)
     * 存放类的字节码对象, 字节码对象包含整个类的定义

五.成员变量和局部变量的区别:
* 区别
    * 定义位置不同
                * 成员变量: 类中方法外
                * 局部变量: 方法内, 或方法声明上(形参)
    * 内存中的位置不同
                * 成员变量: 堆内存
                * 局部变量: 栈内存
    * 生命周期不同
                * 成员变量: 随着对象的创建而创建, 随着对象的销毁而销毁
                * 局部变量: 随着方法的调用而存在, 随着方法的结束而销毁
    * 初始化值不同
                * 成员变量: 有初始值
                * 局部变量: 没有初始值, 必须先定义赋值, 才能调用
    * 作用域不同
                * 成员变量: 所在类中可以使用
                * 局部变量: 所在方法中可以使用
六. private关键字:
        * 作用: 权限修饰符, 可以修饰类, 变量, 方法. 被private修饰的只能在本类访问到
        * 一般成员变量要用private修饰, 并配合public的set/get方法使用
七. this关键字:
        * 作用: 处理局部变量和成员变量重名的问题
        * this是什么: 所在类的对象的引用

八.面向对象的三大特征:
        * 封装
            * 封装的原则:
                * 将不需要对外提供的内容私有
                * 将所有属性私有, 并提供public的set/get方法
            * 封装的好处:
                * 提高代码的安全性
                * 提高代码的复用性
            * 类是封装, 方法也是封装
        * 继承
        * 多态
九.面向对象:
    定义了类:
        JavaBean: 用于描述和封装数据, 便于数据的传递
        Random/Scanner: 用于实现某种特定功能
注意:如果类中没有构造方法, 那就默认一个缺省的空参构造方法,如果给了有参的构造方         
法,那么缺省的构造方法就会失效
day8
一.API介绍(帮助文档)
1)打开帮助按钮额
2)点击"显示" 找到输入框
3)在输入框中输入需要学习的内容
举例:Random
4)看包
java.lang 使用的时候是不需要导包的
5)看类的描述
Random是生成随机数的类
6)看构造方法
Random():无参构造方法
Random r=new Random();
7)看成员方法
public int nextInt(int n)产生一个随机数
看返回值类型,
看方法名
看参数类型

int number=r.nextInt(100);0~100的随机数,                                       
[0,100)
二.通过API学习Scanner
1)Scanner sc=new Scanner(System.in);
sc.nextInt();//录入int类型的数
2)nextLine();方法: 录入一行字符串


三.String方法

1) String(String str)
String s=new String("hello");
2) String(char[] chs);
3)String (char[] chs,int index,int ,count);
4) 直接赋值   String s="hello";
方法:
1)length() 长度
2)charAt(int index)  索引对应的char值
3)indexOf(String str)        字符串对应的索引的第一个字符
4)subString(int start)...  
subString(int start,int end) 截取  包左不包右
注意:1.数组的长度  是 length
2.String 是 length()
3.集合 是 size()
四.遍历String
String str="abcde";
for(int x=0;x<str.length();x++){
System.out.println(str.charAt(x));
}
5)char[]  toCharArray() 转化为char数组
6)String  toUpperCase() 转大写
7)String  toLowerCase() 转小写
8) trim()   去两边的空格
9)String[] split(String str) 按照str进行切割,返回字符串数组
10)replaceFirst(String regex,String replacement) 替换
equals()  startWith()  endWith() contains()
练习:
反转字符串
1)把字符串倒过来遍历 定义一个新的字符串接收
2)用数组的方式
for(int x=0,y=arr.length-1;x<y;x++,y--){
char temp;
temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
String str=new String(arr);


3)StringBuilder sb=new StringBuilder(str);
sb.reverse();
String str1=sb.toString();
syso....


四.StringBuilder
描述:是一个可变的字符串,字符串缓冲区类
String 和StringBuilder的区别
String:不可变
StirngBuilder:长度可变
构造方法:
StringBuilder()
成员方法:
length();返回长度 实际值
capacity():默认容量  理论值
reverse(): 反转字符串
append(Sting str):加添,追加字符串(返回一个StringBuilder对象)
String和StringBuilder互换
StringBuilder sb=new StringBuilder();
String str=sb.toString();
------------------------------
sb=new StringBuilder(str);






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马