华杉研发九学习日记7
java面向对象
一,面向对象的思想
1.1语言的设计思想
语言的设计思想〔模式)其实就是语言在设计之初定义的思想,思路,模式。了解思路有利于对语言的深入学习和了解。
分类:
面向过程
面向对象
面向对象编程(Object Oriented Programing)是相对于面向过程编程(Procedure OrientedPrograming)而言的。它们是2种不同的编程思想。
1.1.1 面向过程
面向就是直面的思想,面对的意思。
过程就是实现功能的整个流程,也就是实现功能的一步一步的步骤。
面向过程就是编程思想,是直面整个功能实现的步骤,注重的是实现功能的步骤,要想实现某个功能面向过程就是在编写实现该功能的一步一步的步骤。
int arr[]={2,3,1,0,65,6};
for(int i=0;i<arr.length-1;i++)
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]<arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
1.1.2 面向对象
面向就是直面的思想,面对的意思。
对象即为万物,万物即为对象,所谓的对象就是能够实现该功能的工具
面向对象就是编程思想,就是在实现某个功能时,注重的是能够实现功能的工具,使用工具来解决我们的真实问题。
在java中往往是一个个的实体,实体中包含了解决各种问题的方法。调用某个实体中的某个方法去解决问题即为面向对象的编程思路。同样,也可以根据自己的需求构造实体及其方法。
面向对象就是找到能够解决问题的对象,使用对象,解决问题。
int arr[]={2,3,1,0,65,6};
Arrays.sort(arr);
就是把现实中的事物都抽象为“对象”。每个对象是唯一的,且都可以拥有它的属性与行为。我们就可以通过调用这些对象的方法、属性去解决问题。
核心:找到合适的对象并使用对象来解决问题
C:面向过程
C++:面向过程,面向对象
JAVA:面向对象
总结:
- 面向对象其实是面向过程的升级(面向对象中又包括面向过程)
- 面向对象就是把现实问题抽象为对象,通过调用每个对象的属性或功能去解决问题。
- 面向对象的思想比面向过程更为简单,更好使用
- 面向对象也是现如今设计语言的最优方案
1.2 面向对象
面向对象就是在程序中找到合适的对象,使用该对象,来解决实际问题。
本质:
找对象->找到合适的对象–>使用对象解决问题
找到对象–>找不到合适的对象–>创建类–>创建对象–>使用对象解决问题
对象
对象是泛指,就是世界上存在的万物。
万物皆为对象,把世界中存在的唯一的事物都是对象。
JAVA是面向对象的思想,也就是java可以把万物都写入程序中。
对象:就是世界上真实或虚拟具体存在的唯一的事物就是对象。
比如:这个椅子,这个桌子,这个学生,这台电脑,孙悟空…
就是对问题中的事物的抽象;就是由静态的描述和动态的描述的组合体;对象是由静态的属性和动态的方法组成。
类
类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。
类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。
类与对象的区别
1)类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。
2)类是一组具有相同属性和行为的对象的抽象。我们可以将类看做是创建对象蓝图,对象根据这个蓝图去具体实现某个东西。
1.3 类
类格式:
public class 类名{
//静态属性--成员变量--
数据类型变量名[=值];数据类型变量名;
....
//动志行为―-成员方法―--
封装方式 返回方式 方法名称
public void 方法名(){
方法体;
}
}
1.4 使用类
使用该类来创建对象,并使用对象来解决问题
// 创建对象 对象名 类似常量名,驼峰式命名规范,一个单词全部小写,多个单词组成,从第二个单词开始首字母大写,其余小写
类名 对象名 = new 类名();
//为对象的属性赋值
对象名.属性名=值;
//取值
对象名.属性名;
// 调用方法
对象名.方法名();
// 创建对象
Phone p1=new Phone();
// 为对象赋值
p1.setBrand("Huawei");
p1.setSize(6.66);
p1.setPrice(3899);
p1.setColor("Starry sky purple");
System.out.println("My Phone`s brand is "+p1.getBrand());
System.out.println("Its size is "+p1.getSize());
System.out.println("Its price is "+p1.getPrice());
System.out.println("Its color is "+p1.getColor());
p1.music();
System.out.println(p1);
System.out.println("=================================");
Phone p2 =new Phone();
// 为对象赋值
p2.setBrand("iPhone");
p2.setSize(5.55);
p2.setPrice(6899);
p2.setColor("sky`s blue");
System.out.println("His Phone`s brand is "+p2.getBrand());
System.out.println("Its size is "+p2.getSize());
System.out.println("Its price is "+p2.getPrice());
System.out.println("Its color is "+p2.getColor());
p2.call();
System.out.println(p2);
学生类:
属性:id name age sex
方法:eat(); study(); sleep();
//类体 属性 当前类的直接静态描述
private int id;
private String name;
private int age;
private String sex;
//封装属性
// getter setter 方法访问被封装的属性
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) { //方法体中可以直接调用其属性
this.sex = sex;
}
public void sleep(){
System.out.println(this.getName() + " sleep!!!!!!");
}
public void eat(){
System.out.println(this.getName() + " eat!!!!!!!");
}
public void study(){
System.out.println(this.getName() + " study!!!!!!!");
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
对应的测试类main方法中的代码:
// 创建对象
Student s1 = new Student();//构造器默认空构造函数
s1.setName("小兰");
s1.setAge(21);
s1.setId(1);
s1.setSex("男");
System.out.println(s1);
s1.eat();
Student s2 = new Student();
s2.setId(2);
s2.setName("大蓝");
s2.setAge(21);
s2.setSex("男");
System.out.println(s2);
s2.study();
使用类创建对象图解:
二,类中的属性
类中属性被称为静态描述,成员变量,全局变量。成员变量的数据类型可以是任意的数据类型(基本数据类型 引用数据类型)。
类中的属性和数组非常类似,也有默认值。
类型名称 | 类型 | 默认值 |
---|---|---|
整数类型 | byte short int long | 0 |
浮点类型 | float | 0.0 |
字符类型 | char | 空白 |
布尔类型 | boolean | false |
字符串类型 | String | null |
全局变量与局部变量
- 全局变量就是直接定义在类体中的变量,作用于整个类。
- 局部变量就是定义在方法中的变量,作用于当前的方法中。
三,类中的方法
类中的方法就是动态的描述,也是动态的行为,成员方法。
方法又被称为是多个代码的组合体
分类:
- 无参无返回值的方法
- 无参有返回值的方法
- 有参无返回值的方法
- 有参有返回值的方法
无参无返回值的方法
public void 方法名(){
方法体;
}
有参无返回值的方法
public void 方法名(参数列表){
方法体;
}
// 参数列表的格式,数据类型 参数名 ,数据类型 参数名
无参有返回值的方法
public 返回值的数据类型 方法名(){
方法体;
return 变量名;
}
// return 返回数据同时终止方法体;
有参有返回值的方法
public 返回值的数据类型 方法名(参数列表){
方法体;
return 变量名;
}