Java常见操作
1 交换两个变量的操作
eg. public static void main(String[] args) {
int m=10;
int n=20;
System.out.println("m="+m+",n="+n);
//交换两个变量的值的操作
int temp=m;
m=n;
n=temp;
}
}
2 交换数组中指定两个位置元素的值
publuc void swap(int[]arr,int i,int j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
swap(arr,j,j+1); //交换两个数的位置 这句在for循环句的下面
3 javabean(java语言写成的可重用组件) 里面的get ,set方法
public void setSex() { get 方法----取得属性
this.sex=sex; set方法----设置属性
} 在main方法里面调用后输出
public int getSex() {
return this.sex;
}
public static void main(String[] args) {
Person2 p8=new Person2(); //main方法里面new对象
p8.setAge(36);
System.out.println( p8.getAge());
4 一维数组的访问 int[ ]x=new int[10];
1.面向过程(POP):强调的是功能行为,以函数为最小单位,考虑怎样做
面向对象(OOP) 将功能封装进对象,强调具备了功能的对象,以 类/对象为最小单位,考虑谁来做
类与对象是面向对象的核心
2.类与对象的使用,(面向对象思想落地的实现)
* 1.创建类 设计类的成员
* 2.创建类的对象 ---new 的方法
* 3.通过 对象.属性 或 对象.方法 调用对象的结构
5.对象的创建和使用 :内存解析
堆 此内存区域的唯一目的就是存放对象实例
栈 这里指虚拟机栈,虚拟机用于存储局部变量 方法执行完后自动释放
方法区 用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译后的代码等数据
6 属性(成员变量)VS局部变量
* 1 相同点
* 定义变量的格式 数据类型 变量名=变量值
* 先声明,后使用
* 变量都有其对应的作用域
* 2 不同点
* 在类中的声明位置的不同
* 属性 :直接定义在类的一对{}内
* 局部变量 声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量
放在类里面 成员变量 放在 方法里面--局部变量
7 Java 规定的四种权限修饰符
private public 缺省 privated
8 返回值类型 有返回值vs没有返回值
① 如果方法有返回值,则必须在方法声明时指定返回值类型,同时,方法中,需要使用 return 关键字来返回指定类型的变量或常量
② 如果方法没有返回值,则方法声明时,用void来表示,通常没有返回值的方法中,就不能使用 return 但是,如果使用的话,只能“return"表达结束此方法的意思
return后不可声明表达式
9关于权限修饰符的不同
* 属性:可以在声明属性时,指明其权限,使用权限修饰符
* 常用权限修饰符: private, public,缺省, protected
* 权限 体现了结构被调用时权限可见性的大小
* 目前,大家声明属性时,都使用缺省就可以了
* 局部变量,不可以使用权限修饰符
10 默认初始化值
* 属性 类的属性,根据其类型,都有默认初始化值
* 局部变量没有初始化值
* 意味着,我们在调用局部变量之前,一定要显式赋值
* 形参在调用时,我们赋值即可
11 在内存中加载的位置
* 属性 加载到堆里面
* 局部变量 加载到栈空间
12 return 关键字的作用
1。使用范围,使用在方法体中
2.作用:1)结束方法
2)针对于有返回值类型的方法,使用”return 数据“方法返回所要的数据
注意点 :return 关键字后面不可以声明执行语句、
13 类中方法的声明与使用
* public String getNation(String nation) {}
* public void eat() {} void 没有返回值
* public void sleep(int hour) {}
* public String getName() {}
方法的声明,权限修饰符,返回值类型,方法名(形参列表) {
方法体 }
方法名属于标识符,遵循标识符的规则和规范 ”见名知意“
1.方法:(描述类应该具有的功能)
是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
方法 --先创建,再使用
方法调用--创建后手动使用后执行
方法的使用中,可以调用当前类的属性或方法
特殊的,方法A中又调用了方法A:递归方法
方法中,不可以定义方法
tips:
如果在 Java 程序中有多个类,经编译之后便会产生与类相等数目的 .class 文件
当程序运行到调用方法语句时,程序会暂停跳到该方法中运行,等该方法运行结束后,才又返回到主方法 main( ) 中继续往下运行
主方法 main( )内如果需要访问类
void area()
* {System.out.println("底面积="+pi*radius*radius);} 定义无返回值的方法 area(),计算面积
* double volume()
* { return(pi*radius*radius)*height; }定义返回值为double型的方法 volume(),计算体积
14 参数的传递
当方法不需要传递任何参数时,方法的括号内什么也不写
调用方法并传递参数时,参数其实就是方法的自变量,所有参数要放在方法的括号内来进行传递
括号内的参数可以是数值型,字符串型,甚至是对象
//int area=text.method(); //text.method() 调用对象 int area= 接收方法
//System.out.println("矩形的面积="+area); //计算最终结果 计算面积方法1
System.out.println(text.method()); //计算面积方法2
15 面向对象思想编程内容的三条主线分别是什么(大处着眼)
1)类及类的成员:属性,方法,构造器,代码块,内部类
2)面向对象的三大特征:封装 ,继承,多态
3)其他关键字:this super, abstract ,interface ,static ,final ,package ,import
16谈谈你对面向对象中类与对象的理解,并指出二者的关系
类:抽象的,概念上的内容
对象:实实在在存在的个体,new 出来的在内存占据一定空间
两者的关系
对象是由类派生出来的(new 出来的)
17类和对象创建与操作的三步
1.创建类
2类的实体化
3.调用对象的结构:对象 属性 对象 方法
类的方法内是否可以定义变量?是否可以调用属性?是否可以定义方法?是否可以调用方法?
是 是 否 是
说明
如果创建了·一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非 static的)
意味着:如果我们修改了一个对象的属性 a,则不影响另外一个对象属性a的值
18内存解析
虚拟机栈 即为平时提到的栈结构,我们将局部变量存储在栈结构中
堆 将 new 出来的结构(数组 对象)加载在堆空间中
方法区 类的加载区 常量池 静态域
19 匿名对象的使用
1 理解 我们创建对象时,没有显式的赋给一个变量名,
2.匿名对象只能调用一次
当一个对象被创建之后,在调用该对象的方法时,也可以不定义对象的引用变量,而直接调用这个对象的方法,这样的对象叫做匿名对象
Cylinder volu=new Cylinder( );
volu.setCylinder(2.5 ,5, 3.14 );
可改写为 new Cylinder( ).setCylinder(2.5 , 5 , 3.14 );
20方法的重载
重载的概念 (“两同一不同”同一个类,相同方法名,参数列表不同--参数个数不同,参数类型不同)
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
重载的特点
与返回值类型无关,只有参数列表,参数个数或参数类型)调用时,根据方法参数的不同来区别
21可变个数形参的方法
* Jdk5.0新增内容
* 具体使用
* 1.可变个数形参的格式 方法通过对象来调 main
* 2. 当调用可变个数形参的方法时,传入的参数个数可以是0个 1个 2个 甚至多个
* 3.可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载 可以共存
* 4。可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载,换句话说,不能共存
* 5.可变个数形参在方法的形参中,必须声明在末尾
* 6.可变个数形参在方法的形参中,最多只能声明一个可变形参
21.1方法形参的传递机制,值传递
* 1形参 方法定义时声明的小括号内的参数
* 实参 方法调用时,实际传递给形参的数据
* 2.值传递机制的描述
* 如果参数是基本数据类型,此时实参赋给形参的是,实参真实存储的数据值
* 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值
22构造方法 (特殊的与类相同的方法) 专门用于在创建对象时,完成初始化工作
定义构造方法时若加了“ void "修饰符,则这个方法就不再被自动调用
构造方法没有返回值,因为一个类的构造方法的返回值类型就是该类本身
构造方法特殊性的体现
1) 构造方法的方法名与类名相同
2} 构造方法没有返回值,但不能写 void
3) 构造方法的主要作用是完全对类对象的初始化工作
4) 构造方法一般不能由编程人员显式地直接调用,而是用 new来调用
5) 在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化
23类与对象的使用,(面向对象思想落地的实现)
* 1.创建类 设计类的成员 class....
* 2.创建类的对象 ---new 的方法 public..主类 new方法 输出
* 3.通过 对象.属性 或 对象.方法 调用对象的结构 void area()方法
* {System.out.println("底面积="+pi*radius*radius);} 定义无返回值的方法 area(),计算面积
* double volume()
* { return(pi*radius*radius)*height; }定义返回值为double型的方法 volume(),计算体积