2018-12-03

作者: DreamPath | 来源:发表于2018-12-04 00:43 被阅读52次

Day03.面向对象及其封装 、Api的使用、Scanner、Ramom类

1.1 面向对象思想概述

              Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。

             面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。

它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现.

​ 特点: 面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。 面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

1.2类与对象

1、面向对象?

*    实际上是我们角色的转变 从一个执行者变成了一个指挥者

* 2、什么是类

*    类就想是一个模板,然后我们可以通过这个模板来做出来很多东西

*    ,然后还可以在模板上加工自己的内容

* 3、什么是对象?

*    对象其实就是模板加工出来的产品,然后我们可以在上面做些自己的修改

举例

*   类不特指某一个对象 而是对象的抽象模板

*   对象是类具体的某一个实例

比如:小猫,小狗,属于两个类

而特指某一个猫或者狗就是对象,因此类便可以定义不同的对象。同时类也有多种。

类具有属性跟行为

            这里,猫有两只眼睛,四条腿,有它的颜色,都属于它的属性

行为程序中称为方法,他可以走路,喊叫。  狗可以看门咬人这些都属于行为。

类与对象的关系

类是对一类事物的描述,是抽象的。

对象是一类事物的实例,是具体的。

类是对象的模板,对象是类的实体。

1.3类的定义

属性:事物的状态信息。 

行为:事物能够做什么。 Java中用class描述事物也是如此:

成员变量:对应事物的属性   成员方法:对应事物的行为

public class ClassName{

   //成员变量(全局变量)

   //成员方法

}

注意:非默认的类的类名与文件名一致,使用驼峰命名法

默认的类名可以不一致,但不符合习惯,为以后调用和实例化制造了麻烦

1.4对象的使用

类名 对象名 =new 类名

对象名. 成员变量;

对象名. 成员方法();

对象使用举例

1.5成员变量和局部变量

* 1、位置不同

* 2、作用范围不一样

*      在方法中 局部变量和全局变量都有意义

*      说明局部变量只在方法里面起作用

* 3、   初始化值不一样;

*      局部变量必须有初始化值,不然会报错

*      全局变量本身就自带有初始值

            a初始化值为0    其实八中基本变量的初始化值就是笔记里面的数字

*                            int byte short long            0

*                            String                              null

*                            float  double                 0.0

*      生命周期不一样

*      内存中位置不一样      方法执行完 就退出了栈 因此局部变量就失去了意义

*                           我们的案例里面在方法后面调用不了局部变量,说明存储在栈中

成员变量:堆内存

局部变量:栈内存

1.6对象数组

数组的核心概念就是:某一数组之中的保存的都是对象,所以对于对象数组的种类分为

动态初始化:类名称 对象数组名称 [] =new 类名称 [长度];

静态初始化:类名称对象数组名称 [] =new 类名称[] {实例化对象,实例化对象}

2  封装

2.1 封装概述

概述

面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

2.2 封装的步骤

使用 private 关键字来修饰成员变量。

对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

2.3 封装的操作——private关键字

private的含义

private是一个权限修饰符,代表最小权限。

可以修饰成员变量和成员方法。

被private修饰后的成员变量和成员方法,只在本类中才能访问。

private使用方法

private 数据类型 变量名;

1.使用private 修饰成员变量

2.提供set  get方法

 2.4   this关键字

​Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:

1)  构造方法中指该构造器所创建的新对象;

2)  方法中指调用该方法的对象;

3)  在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法

this.成员变量

方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写。

2.5 封装优化2——构造方法 (构造器)

​分为有参构造和无参构造

构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用 构造方法后,代码如下:

修饰符 构造方法名(参数列表){ // 方法体      }

注意事项

1. 如果你不提供构造方法,系统会给出无参数构造方法。

2. 如果你提供了构造方法,系统将不再提供无参数构造方法。

3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数

  2.6 标准代码——JavaBean

     JavaBean 是 Java语言编写类的一种标准规范。

     符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 setter 和 getter 方法。

public class ClassName{  

  //成员变量  

  //构造方法  

  //无参构造方法【必须】

  //有参构造方法【建议】

  //成员方法    

  //getXxx(){return}

  //setXxx(参数){}

  ```

  ```}

3. API的使用

打开帮助文档。

点击显示ctrl+f,找到索引,看到输入框。

你要找谁?在输入框里输入,然后回车。

看包。java.lang下的类不需要导包,其他需要。

看类的解释和说明。

学习构造方法

使用成员方法

4.Scanner类

4.1 Scanner类概念

            一个可以解析基本类型和字符串的简单文本扫描器

例如:

public static void main(String [] args){

   Scanner scan=new Scanner(System.in);

  String str= scan.next();

}

4.2 引用类型使用步骤

导包

                    使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格 式:import 包名.类名

创建对象

数据类型  变量名 = new 数据类型 (参数列表)

  Scanner scan=new Scanner(System.in);

调用方法

变量.方法名();

String str=scan.next();//接受一个键盘录入的字符串

4.3 Scanner使用步骤

1.查看类(api文档里去查看):java.util.Scanner

2.查看构造方法:public  Scanner(InputStream sourse)

3.查看成员方法 public int next()

求和

键盘录入两个数据并求和,代码如下:

取最值 键盘录入三个数据并获取大值,代码如下:

public class QiuZuizhi {

  static int temp=0;

   public static void main(String[] args) {

       Scanner scanner =new Scanner(System.in);

       int a = scanner.nextInt();

       int b=scanner.nextInt();

       int c=scanner.nextInt();

// 方法一        temp=Math.max(Math.max(a,b),c);

//方法二          temp=((a>b?a:b)>c?(a>b?a:b):c);

       System.out.println(temp);

   }

}

4.5匿名对象

1.概念

创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用 场景非常有限。

匿名对象 :没有变量名的对象。格式:

new 类名(参数列表);

new Scanner(System.in);

应用场景

2.创建匿名对象直接调用方法,没有变量名

new Scanner(System.in).nextInt();

注:一个匿名对象,只能使用一次

3.匿名对象可以作为方法的参数和返回值

5 Random类

1.此类的实例用于生成伪随机数

利用同样的学习方法学Random

2.使用Random类,完成生成3个10以内的随机整数的操作,代码如下

注:创建一个 Random 对象,每次调用 nextInt() 方法,都会生成一个随机数。

5.3 练习

获取随机数

获取1-n之间的随机数,包含n

猜数字游戏

// 导包 import java.util.Random;

public class Test02Random {  

public static void main(String[] args) {  

// 系统产生一个随机数1‐100之间的。

Random r = new Random();   

int number = r.nextInt(100) + 1;    

while(true){   

// 键盘录入我们要猜的数据    

Scanner sc = new Scanner(System.in);  

System.out.println("请输入你要猜的数字(1‐100):");   

int guessNumber = sc.nextInt();       

// 比较这两个数据(用if语句)    

if (guessNumber > number) {   

System.out.println("你猜的数据" + guessNumber + "大了");       } else if (guessNumber < number) {  

System.out.println("你猜的数据" + guessNumber + "小了");

} else {      

System.out.println("恭喜你,猜中了");  

break;     

}  

}   } }

相关文章

网友评论

    本文标题:2018-12-03

    本文链接:https://www.haomeiwen.com/subject/tzgecqtx.html