JavaSE基础03

来源:互联网 发布:knn算法matlab 编辑:程序博客网 时间:2024/06/05 04:00

方法

1.定义:实现一个功能的代码片段的封装
[修饰符....]返回值类型  方法名称(形参的列表){
   //方法中实现的逻辑
  }
2.方法的访问:
对象.方法

3.形参列表:方法接收外部传入的数据的接收媒介
*当我们定义了一个方法之后去调用方法的时候,一定要注意我们传递给方法的入参类型和数量一定要一一对应。

4.返回值: 方法执行结束之后,返回的值的类型。
* 如果方法不需要返回任何的值,那么我们的方法返回的类型写作void。
  在方法里返回一个值,需要用到return。

5.唯一确定一个方法关注点:
a、方法名是否一致
b、形参列表的所有参数类型和数量是否一致,对于形参列表变量的命令完全是没有关系的。
c、返回值的类型(可以是基本类型可以是引用类型)
注意:一旦明确指定了方法的返回类型(非void),那么一定要保证最终方法可以成功的返回我们对应的返回类型数据。
         关于void返回类型
         如果我们不主动添加return语句,在执行的时候,也会帮我们自动添加return,我们在实现void类型方法的时候,主动添 加一个return也没有问题。
6.方法参数的传递:
方法参数的传递来说,基本类型传递的是值;对于引用类型,传递的是引用(地址)。

package practice;public class practice {public static void main(String [] args){char gread = test ('A');}public static char test (char gread){  //定义一个方法switch(gread){case 'A':System.out.println("优秀");break;case 'B':System.out.println("良好");break;case 'C':System.out.println("合格");break;default :System.out.println("不合格");}return gread;  //非void类型要保证最终方法可以成功返回对应返回类型的数据}}

方法重载 overload

a、对于同名的方法,具有不同的参数列表,我们在访问的时候,通过调用方法传入不同的参数列表,就可以找到我们特定的方法。

b、当我们定义多个重载方法的时候,在编译阶段的话,编译器可以根据我们方法形式参数数量以及类型来区别不同的方法,执行阶段可以根据我们调用的时候传入形参列表,仅仅拥有不同返回值类型是不被视为重载的。


类(封装对象属性和行为的载体)

1.类是对象的类型,具有相同属性和方法的一组对象的集合。

2.类主要由两部分组成:成员变量和方法

3.成员变量:

[修饰符……] 类型 名称 = 默认值

成员变量的访问:

对象.成员变量

4.局部变量:

方法中定义的变量或者是方法的形式参数

注意:

* 对于java来说作用于控制是通过块来控制的。块:一对“{}”包裹起来的代码片段称为一块。

* 对于某个块内定义变量:

a、对于当前的块,不能再定义同名的变量,即使类型不同也不行。

b、对于当前的块,定义了某个变量,在块外不能访问到块中定义的变量。

* 如果存在块的嵌套,那么外层定义的变量在内存是可以访问到的。

5.同一个类的每个对象有不同的成员变量存储空间,同一个类不同的对象共享该类的方法。


6.类的构造方法:(特殊的方法)

构造方法没有返回值。

构造方法的名称要与本类名称相同。

格式:

public book(){

 //构造的方法体

}

* 构造方法不需要void关键字进行修饰

  在new(创建一个对象)的时候,一定去调用它的构造方法,但是如果我们没有自己添加自己定义的构造器的话,编译器会给我们添加一个默认的构造器,如果我们主动添加了一个默认构造器,那么在创建对象的时候,通过new 类名( );会调用我们自己添加的默认构造器。

  当我们主动添加了一个包含参数的构造器,并且没有主动添加默认构造器,则再通过new 类名(),就会遇到编译问题。

package practice;public class ClassDemo {int a ;int b ;ClassDemo(int parmA,int parmB){a = parmA;b = parmB;System.out.println("constructor");}//添加默认构造器ClassDemo(){System.out.println("default constructor");}void setA(int parmA){a = parmA;}void setB(int parmB){b = parmB;}int getResult(){return a+b;}public static void main(String[] args){ClassDemo demo1 = new ClassDemo();//ClassDemo demo2 = new ClassDemo();System.out.println(demo1.getResult());}}

7.类的继承(extends)

格式:

[修饰符]class 子类名 extends 父类名{

  类体

}

a、修饰符:可选参数,用于指定类的访问权限,可选值为public,abstract和final。

b、子类名:必选参数,用于指定子类的名称,类名必须是合法的Java标识符。一般情况首字母大写。

c、extends父类名:必选参数,用于指定要定义的子类继承于哪一父类。

例如:

父类Bird

public class  Bird{String color = “白色” ;String skin = “羽毛”;}

子类Pigeon

public class Pigeon extends Bird{   //类的继承  public static void mian(String [] args){     Pigeon pigeon = new Pigeon();     System.out.println(pigeon.color);}}


对象(将类实例化后出现对象)

1.Java中所有问题都通过对象来处理,对象可以操作类的属性和方法来解决问题。

2.Java为什么使用面向对象?

a、程序的本质

b、编程语言的发展一直在追求更易于开发的方式

c、复用

d、分装

e、高维护性和可读性

3.用new来创建对 象 如:Test test = new  Test();

* test对象被创建出来时,test对象就是一个对象的引用,这个引用在内存中为对象分配了存储空间,可以在构造放法时初始化成员变量,当创建对象时,自动调用构造方法,也就是说在java中初始化与创建时捆绑在一起的。

* 每个对象都是相互独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象变成了垃圾,由java虚拟机自带的垃圾回收机制处理,不能再被使用。

* 通常将对象划分为两部分,即动态部分与静态部分(即属性和行为)
package practice;public class Person {int age ;int height;int weight;boolean sex;Person(int ageparm,int heightparm,int weightparm,boolean sexparm){//变量初始化age = ageparm;height = heightparm;weight = weightparm;sex = sexparm;}void getSex(){   //创建一个方法if(sex){System.out.println("男");}else{System.out.println("女");}}public static void main(String[] args){Person green = new Person(40,170,65,false);//  创建一个green对象green.getSex(); //调用getSex这个方法  }}





原创粉丝点击