*函数是对功能代码的封装*
函数的类型:
1.无返回值,无参的 : void 函数名(){}
2.有返回值,有参的 : int 函数名(类型 变量名,类型 变量名,。。。){ return 1}
3.无返回值,有参的
4.有返回值, 无参的
return的作用:
1.结束函数2.将值返 回
类:是一类东西
自定义一个数据类型 (属性, 方法)
public class Cat {
private String name;
private int age;
private Boolean sex;
private String pin;
public Cat(Boolean sex){
this("未知",-1,sex,"未知"); //this代表类
}//构造函数,可用构造函数传递参数
public Cat(Boolean sex,String pin){
this("未知",-1,sex,pin);
}
public Cat(int age,Boolean sex,String pin){
this("未知",age,sex,pin);
}
//构造函数
public Cat(String name,int age,Boolean sex,String pin){
this.name=name;
this.age=age;
this.sex=sex;
this.pin=pin;
}//构造函数,不用this会不知道传给谁
//写函数,setName是习惯用法
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public void setSex(Boolean sex){
this.sex=sex;
}
public void setPZ(String pin){
this.pin=pin;
}
//读函数
public String getName(){
return name;
}
public int getAge(){
return age;
}
public boolean getSex(){
return sex;
}
public String getPZ(){
return pin;
}
}
//普通函数
public void mao(){
System.out.println(name+"出现了");
dz();
}
public void dz(){
System.out.println("请输入动作");
Scanner in =new Scanner(System.in);//输入
String dz = in.nextLine();//输入
if(dz.equals("摸摸")){
System.out.println(name+"喵喵喵");
}else if(dz.equals("信息")){
xinxi();
}else if(dz.equals("不玩了")){
System.out.println(name+"走了");
return;
}else{
System.out.println(name+"不理你");
}
System.out.println("-------");
dz();
}
public void xinxi(){
System.out.println("________________");
System.out.println("|猫的名字|"+name);
System.out.println("|猫的品种|"+pin);
System.out.println("|猫的年龄|"+age);
if(sex){
System.out.println("|猫的性别|母");
}else{
System.out.println("|猫的性别|公");
}
System.out.println("________________");
}
}
类名 对象名= new 类名();//定义变量并分配内容赋初始值
Cat mao1 = new Cat(“咪咪”,1,false,”英国短毛猫”);
Cat mao2 = new Cat(“煤碳”,2,true,”暹罗猫”);//类
Cat mao3 = new Cat(true);
mao3.setName(“小花”);
mao3.setAge(1);//写函数的用法
访问修饰符;
public:公开(公有的) ,所有人都可以访问, 用来修饰方法
public Cat(String name,int age,Boolean sex,String pin){
this.name=name;
this.age=age;
this.sex=sex;
this.pin=pin;
}
//写函数
public void setName(String name){
this.name=name;
}
private:私有的,只能类本自身访问,用来修饰属性,只能在类的内部使用
private String name;
private int age;
private Boolean sex;
private String pin;
构造函数:没有返回值类型, 名子与类名相同, 访问修饰符为public
1.默认构造函数:无参的
2.自函定义的构造函数:只要有一个自定义的构造函数,默认构造函数不存在
public 类名(){}
构造函数可以有多个,只要是 参数不同就是不同的构造函数
构造函数在new时被调用
封装:方法公有化, 属性私有化
this: 当前对象
this.属性名
this(参数); //调用构适函数,必须放在造构函数的开头
读写方法:
get读方法
public 类型 get属性名(){
return 属性名;
}
set写方法
public void set属性名(类型 变量名){
this.属性名 = 变量名;
}
注: 类型与属性的类型相同
get属性名,set属性名:属性名开头字母大写
猫的类
--------------
package MyJava;
import java.util.Scanner;
public class MyMain {
public static void main(String[] args) {
// 猫
Cat mao1 = new Cat("咪咪",1,false,"英国短毛猫");
Cat mao2 = new Cat("煤碳",2,true,"暹罗猫");
Cat mao3 = new Cat(true);
mao3.setName("小花");
mao3.setAge(1);
for(int i=0;i<10;){
System.out.println("-----");
System.out.println("要找第几只猫?");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
switch(num){
case 0 :i=11;break;
case 1 :mao1.mao();break;
case 2 :mao2.mao();break;
case 3 :mao3.mao();break;
default:
System.out.println("没有那么多猫,换一只吧");
System.out.println("结束输入0");
break;
}
}
System.out.println("结束了");
}
}
package MyJava;
import java.util.*;
public class Cat {
private String name;
private int age;
private Boolean sex;
private String pin;
public Cat(Boolean sex){
this("未知",-1,sex,"未知");
}
public Cat(Boolean sex,String pin){
this("未知",-1,sex,pin);
}
public Cat(int age,Boolean sex,String pin){
this("未知",age,sex,pin);
}
//构造函数
public Cat(String name,int age,Boolean sex,String pin){
this.name=name;
this.age=age;
this.sex=sex;
this.pin=pin;
}
//写函数
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public void setSex(Boolean sex){
this.sex=sex;
}
public void setPZ(String pin){
this.pin=pin;
}
//读函数
public String getName(){
return name;
}
public int getAge(){
return age;
}
public boolean getSex(){
return sex;
}
public String getPZ(){
return pin;
}
//普通函数
public void mao(){
System.out.println(name+"出现了");
dz();
}
public void dz(){
System.out.println("请输入动作");
Scanner in =new Scanner(System.in);
String dz = in.nextLine();
if(dz.equals("摸摸")){
System.out.println(name+"喵喵喵");
}else if(dz.equals("信息")){
xinxi();
}else if(dz.equals("不玩了")){
System.out.println(name+"走了");
return;
}else{
System.out.println(name+"不理你");
}
System.out.println("-------");
dz();
}
public void xinxi(){
System.out.println("________________");
System.out.println("|猫的名字|"+name);
System.out.println("|猫的品种|"+pin);
System.out.println("|猫的年龄|"+age);
if(sex){
System.out.println("|猫的性别|母");
}else{
System.out.println("|猫的性别|公");
}
System.out.println("________________");
}
}