方法的声明没有函数体;
void 不需要return; 其他的如int 是需要return的;
2.3默认是double类型的,把double的数强行传给float类型的;
转置:横坐标和纵坐标转换;
构造方法的主要用处是初始化你的成员属性(变量);
初始化不需要. 点,会自动初始化
通过 构造方法 在类中直接创建;
在没有构造方法的时候,就需要成员符号,点号。
你调用哪个构造方法,取决于参数值;
写出来别人覆盖不了;不写,被后面的覆盖了;
类--类的成员方法(函数)--如何理解
如何理解方法这个概念,给大家举个通俗的示例:
程序员调用方法:给方法必要的输入,方法返回结果。
类的成员方法--声明
public int test(int a);/*方法声明*/
这句话的作用是声明该方法,声明的格式为:
访问修饰符 数据类型 函数名(参数列表);
在给Person类添加add方法的例题中,我们看到的关键字return,它的功能是把表达式的值返回的值返回给主调函数的方法。
return 表达式;
类的成员方法(函数)--特别说明
1、方法的参数列表可以是多个
案例:在Person类中编写一个成员方法,从键盘输入三个数,返回最大的那个数。
参数列表可以是多个,并且数据类型可以是任意的类型int float double char..
访问修饰符 返回数据类型 函数名(参数列表){
语句; //函数主体
}
2、方法可以没有返回值
案例:编写一个函数,从控制台输入一个整数打印出对应的金字塔。
返回类型可以是任意的数据类型(int,float,double,char..)也可以没有返回值void表示没有返回值
访问修饰符 返回数据类型 函数名(形参列表){
语句; //函数主体
}
类的成员方法(函数)--小练习
案例:编写一个成员函数,从键盘输入一个整数(1-9),打印出对应的乘法表[Demo110.java]
31
1
//实例键盘输入打印乘法表[Demo110.java]
2
import java.io.*;
3
public class Demo110{
4
public static void main(String []args){
5
Cfb jiu=new Cfb();
6
jiu.cf();
7
}
8
}
9
class Cfb{
10
public void cf(){
11
try{
12
//输入流,从键盘接收数
13
InputStreamReader isr=new InputStreamReader(System.in);
14
BufferedReader br=new BufferedReader(isr);
15
//给出提示
16
System.out.println("请输入1-9,按0退出:");
17
//从控制台读取一行数据
18
String a1=br.readLine();
19
//把String转为int
20
int num1=Integer.decode(a1);
21
for(int i=1;i<=num1;i++){
22
for(int j=1;j<=i;j++){
23
System.out.print(i+"×"+j+"="+(i*j)+"\t");
24
}
25
System.out.println();
26
}
27
}catch(Exception e){
28
e.printStackTrace();
29
}
30
}
31
}
案例:编写函数,使给定的一个二维数组(3×3)转置
类定义的完善
在介绍了成员方法后,我们类的定义就可以完善一步:
class 类名{ class 类名{ 待定
成员变量; → 成员变量; →
} 成员方法;
}
小结:1.先设计类;2.然后根据类创建对象。
小练习:
1、设计计算机类,要求如下:[Demo109.java]
属性:品牌(Brand)、颜色(Color)、cpu型号(CPU)、内存容量(Memory)、硬盘大小(Harddisk)、价格(Price)、工作状态(Work)
方法:打开(Open)、关闭(Close)、休眠(Sleep)
创建一个计算机对象,调用打开,关闭方法
/
1
/计算机类与对象的代码
2
import java.io.*;//加载IO流包
3
public class Demo109{
4
public static void main(String []args){
5
Computer Pc=new Computer();
6
Pc.Brand="品牌";
7
Pc.Color="颜色";
8
Pc.Cpu="Cpu型号";
9
Pc.Memory="内存容量";
10
Pc.Hd="硬盘容量";
11
Pc.Price="价格";
12
Pc.Work="工作状态";
13
try{
14
//输入流,从键盘接收数
15
InputStreamReader isr=new InputStreamReader(System.in);
16
BufferedReader br=new BufferedReader(isr);
17
//给出提示
18
System.out.println("请输入0-9控制机器");
19
//从控制台读取一行数据
20
String a1=br.readLine();
21
//把String转为float
22
float num1=Float.parseFloat(a1);
23
if(num1==0){Pc.open();}
24
else if(num1==1){Pc.close();}
25
else if(num1==2){Pc.sleep();}
26
else if(num1==3){System.out.println(Pc.Brand);}
27
else if(num1==4){System.out.println(Pc.Color);}
28
else if(num1==5){System.out.println(Pc.Cpu);}
29
else if(num1==6){System.out.println(Pc.Memory);}
30
else if(num1==7){System.out.println(Pc.Hd);}
31
else if(num1==8){System.out.println(Pc.Price);}
32
else if(num1==9){System.out.println(Pc.Work);}
33
else {System.out.println("输入错误!");}
34
}catch(Exception e){
35
e.printStackTrace();
36
}
37
}
38
}
39
40
class Computer{
41
String Brand;
42
String Color;
43
String Cpu;
44
String Memory;
45
String Hd;
46
String Price;
47
String Work;
48
public void open(){
49
System.out.println("开机");
50
}
51
public void close(){
52
System.out.println("关机");
53
}
54
public void sleep(){
55
System.out.println("休眠");
56
}
57
}
2、java面向对象编程(1)-构造方法(函数)
类的构造方法介绍
什么是构造方法呢?在回答这个问题之前,我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?
↓
你可以在定义类的时候,定义一个构造方法即可。
构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:
1、方法名和类名相同
2、没有返回值
3、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化。
特别说明:
一个类可以定义多个不同的构造方法。
//例人类构造方法[Demo111.java]
public class Demo111{
public static void main(String []args){
Person p1=new Person(12,"顺平");//给予不同的初始值,调用的构造方法不同,构造方法虽同名,但系统会根据初始值来选定构造方法。
}
}
//定义一个人类
class Person{
int age;
String name;
//默认构造方法
public Person(){
}
//构造方法的主要用处是:初始化你的成员属性(变量)
//构造方法
public Person(int age,String name){
System.out.println("我是构造1");
age=age;
name=name;
}
//构造方法2
public Person(String name){
System.out.println("我是构造2");
name=name;
}
}
类的默认构造方法
有些同志可能会问?亲爱的老师,我们在没有学习构造函数前不是也可以创建对象吗?
是这样的,如果程序员没有定义构造方法,系统会自动生成一个默认构造方法。比如Person类Person (){};
当创建一个Person对象时Person per1=new Person();默认的构造函数就会被自动调用。
类的构造方法小结:
1、构造方法名和类名相同;
2、构造方法没有返回值;
3、主要作用是完成对新对象的初始化;
4、在创建新对象时,系统自动的调用该类的构造方法;
5、一个类可以有多个构造方法;
6、每个类都有一个默认的构造方法。
类定义的改进
在提出构造方法后,我们类的定义就应该更加完善了:
class 类名{ class 类名{ class 类名{
成员变量; 成员变量; 成员变量;
} → 成员方法; → 构造方法; → 待定..
} 成员方法
}