java面向对象编程
面向对象&面向过程
前言: 之前的代码大多数都是属于面向过程的,在程序中有main()方法也叫主方法,程序会由上至下执行main()里面的内容。程序里的方法;例如编写一个计算器的程序,基本的运算需要用到加减乘除四则运算,我们可以把加法做成一个方法,减法做成一个方法,在使用的时候依次在main()方法中调用使用。属性加方法等于一个类
面向过程的思想:
面向过程适合一些较为简单的问题,面向过程步骤清晰简单,第一步做什么…第二步做什么…
面向对象思想:
面向对象适合处理复杂的问题,以分类的思维方式,适合处理需要多人协作的问题。对于描述复杂的食物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是具体到微观的操作,仍然需要面向过程的思路来处理,面向对象是建立在面向过程之上的
面向对象编程的本质是: 以类的形式组织代码,以对象的组织封装数据
抽象
面向对象三大基本特性:
- 封装 将数据封装起来,禁止所有人去操作数据提高了数据的安全性
- 继承 子类可以继承父类的所有属性和方法,例如:A->B,A类继承B类则A类拥有B类的所有数据
- 多态 一个事物有多个不同的形态
对象与类
从认识的角度考虑是先有对象后有类,对象是具体的事物,类是抽象的,是对对象的抽象
从代码运行角度来考虑是先有类后又对象,类是对象的模板
比如:学生就是一个抽象类,而许志滨是一个具体的人
方法的定义
基本的类与方法:
public class Demo01 {
public static void main(String[] args) {
}
}
定义方法:
public String Print(String Str){
return str
}
public void Print(){
return;
}
public int Max(int a,int b){
return a>b ? a:b;
}
break与return的区别
break在switch中有终止判断和跳出循环的作用。 return是方法结束语句
在return后添加语句不被执行
public class Demo01 {
public static void main(String[] args) {
System.out.println("return前");
return;
System.out.println("return后");
}
}
执行直接报错
java: 无法访问的语句
方法名
方法明名注意规范(驼峰命名法),最好见名知意。
参数列表 (参数类型 参数名),可以有多个参数和可变参数
方法调用
方法分为静态方法(定义方法时加修饰符static)和非静态方法(定义方法时没有加static)
静态方法调用:
public static String Print(){
}
静态方法可以直接通过方法名进行调用
public static void main(String[] args) {
Print("1");
}
在Demo01.java创建name类并加修饰符static声明静态方法
public static String name(String name){
return name;
}
在Demo02.java文件中使用类名.方法名()进行调用
Demo01.name("小滨");
非静态方法:
public int Int(int i){
return i;
}
非静态方法需使用New关键字进行实例化对象
public static void main(String[] args) {
Demo02 D=new Demo02();
D.Int(1);
}
在Demo01.java中定义age非静态方法
public int age(int age){
return age;
}
Demo02.java进行调用
Demo01 Demo01=new Demo01();
Demo01.age(19);
java中的值传递
public class Demo03 {
public static void main(String[] args) {
int i=99;
System.out.println(i);
Demo03 D=new Demo03();
D.change(i);
System.out.println(i);
}
public void change(int i){
i=100;
System.out.println(i);
}
}
第一个输出的99为在main()方法里面定义的i值为99后输出的,第二个值100是调用change()方法输出的,虽然change()方法中的i的值为100但是,change()方法里的i和main()方法里面i是不一样的,调用change()方法输出i的值,第三个99为调用后输出的值
执行结果:
99
100
99
java中的引用传递
package Test_Demo2;
public class Demo04 {
public static void main(String[] args) {
Perosn perosn =new Perosn();
Demo04.change(perosn);
}
public static void change(Perosn perosn){
perosn.name="许志滨";
}
}
class Perosn{
String name;
}
|