面向对象是什么?学习中现在很不清晰,尤其是之前只学习过c,考虑到只会用简单的面向过程,所以此次在第一次理解还需要时间积淀。
个人学习总结:且看日后来看看这些理解是否正确
首先,面向对象与面向过程是不同的,且优于面向过程的,精简了代码,避免了代码的重复性,而面向对象其所面对的就是对象。什么是对象,我的理解就是对象是某一类型的具体化,比如建立一个学生的类,然后张三石学生,那么这个张三便是要面对的对象。理解对象要和类结合起来理解,类是抽象化的数据类型。对象是由属性和行为构成,成员变量来表示属性,方法来表示行为;成员变量存储在内存的堆中,方法存储在内存的防范区中;
成员变量和局部变量:
成员变量-是类中对象的属性描述,具有初始化值,存在类中;
局部变量-是方法中的变量,没有初始化值,需要赋值;
内存分为堆、栈、方法区。其中局部变量在栈中,成员变量及对象在堆中,类的信息和方法在方法区中;
数据类型:基本数据类型-包括byte short int long char boolean float double8中基本数据类型。引用数据类型-包括数组、借口等其他数据类型。
引用变量存储的是所引用的对象的地址信息,因为引用变量在栈中,对象在堆中。
我可以建立一个类Emp,是用来定义员工类的,其中属性即成员变量有姓名name 年龄age 性别gender 薪水salary等,行为即方法有sayHi,代码如下:
public class Emp{
String name;
int age;
String gender;
double salary;
public void sayHi(){
};
}
调用对象,即在main方法中调用对象,建立新的测试类EmpTest
public class EmpTest{
public static void main(String[] args){
Emp emp = new Emp();//在堆中创建新的对象Emp,并且把地址信息存储在栈中的引用变量emp中
}
}
构造方法-对对象中的成员变量进行初始化,一般在建立类时不创造构造函数时,程序会自动添加一个默认的构造函数,但若是添加了构造函数,则JVM会取消默认构造函数,之后创建对象时要使用构造函数。构造函数没有返回值,并且函数名也要和类型相同。
如:
class Emp{
String name;
int age;
String gender;
double salary;
Emp(){
}//默认构造函数,即不定义构造函数时系统默认的,如果定义了构造函数,则系统会取消默认的构造函数,除非在类中创建了该构造函数
Emp(String name,int age,String gender,double salary){
this.name = name;
this.age = age;
this.gender = gender;
this.salary = salary;
}
}
this关键词:指代当前对象,即在新建的对象中指代该对象
数组:
数组定义:数组是一种数据结构,即程序就是算法加数据结构,好的数据结构可以有好的算法
数据类型[] 数组名称 = new 数据类型[数组长度];
数据类型[] 数组名称 = {元素1,元素2,...,元素n};
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,...,元素n};
数组长度表示:数组名称.length
数组的复制:
数组遍历:使用循环语句完成
int[] arr = {1,2,3,4,5,6,};
for(int i=0;i<arr.length;i++){
if(i == arr.length-1){
System.out.print(arr[i]);
}esle{
System.out.print(arr[i]+",");
}
}
冒泡排序算法:
int[] arr = {3,1,5,4,7,9,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[i];
arr[j+1] = arr[i];
arr[i] = temp;
}
}
}
选择排序算法:
int[] arr = {3,1,5,4,7,9,6};
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length,j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[j] = arr[i];
arr[j] = temp;
}
}
}
变量a和变量b的值互换方法:int a = 1;int b = 9;
1、使用中间变量temp
int temp = a;
a = b;
b = temp;
1、不使用中间变量
a = a^b;
b = a^b;
a = a^b;
或者
a = a*b;
b = a/b;
a = a/b;
或者
a = a+b;
b = a-b;
a = a-b;