方法
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这个方法
}
}