设计对象并使用
类和对象
类:是对象共同特征的描述
对象:是真实存在的具体实例
在Java中,必须先设计类,才能获得对象
如何定义类
public class 类名{
1.成员变量//属性.只定义.不给值
2.成员方法//行为
3.构造器
4.代码块
5.内部类
}
如何得到类的对象
类名 对象名 = new 类名();
Phone p = new Phone();
如何使用对象
访问属性:对象名.成员变量
访问行为:对象名.方法名(…)
补充
1.用来描述一类事物的类,专业叫javabean类.在javabean类中,是不写main方法的
2.编写main方法的类,叫做测试类.
我们可以在测试类中创建javabean类的对象进行赋值调用
3.类名首字母建议大写,需要见名知意,驼峰模式.
4.一个Java文件中可以定义多个class类,且只能一个类是public 修饰,并且public修饰的类型必须成为代码文件名
实际开发中,一个java文件建议定义一个class类
5.成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值.
封装
对象代表什么,就得封装对应的数据,并提供数据对应的行为
private关键字
1.是一个权限修饰符
2.可以修饰成员(成员变量和成员方法)
3.被private修饰的成员只能在本类中才能访问
4.private修饰的成员变量如果需要被其他类使用,提供相应的操作
5.提供"setXxx(参数)"方法,用于给成员变量赋值,方法用public修饰
6.提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰
package com.hh.itheima.test2;
public class GirlFriend {
private String name;
private int age;
private String gender;
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public void setAge(int a){
if(a >= 18 && a <=50){
age = a;
}else{
System.out.println("错误");
}
}
public int getAge(){
return age;
}
public void setGender(String g){
gender = g;
}
public String getGender(){
return gender;
}
public void sleep(){
System.out.println("在睡觉");
}
public void eat(){
System.out.println("在吃饭");
}
}
就近原则和this关键字
成员变量和局部变量
成员变量:定义在类的里面,方法的外面
局部变量:定义在类的里面,方法的里面
就近原则
this关键字
可以区别成员变量和局部变量
构造方法
构造方法也叫构造器.构造函数
作用:在创建对象的时候给成员变量进行赋值.
public class Student{
修饰符 类名(参数){
方法体;
}
}
特点
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值(不能由return带回结果数据)
4.在创建对象的时候由虚拟机自动调用,不能手动调用构造方法
5.每创建一次对象,就会调用一次构造方法
6.如果没有写任何构造方法,虚拟机会构造一个空参的构造方法
注意事项
1.构造方法的定义
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
如果定义了构造方法,系统将不再提供默认的构造方法
2.构造方法的重载
带参构造方法和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
3.推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
标准JavaBean
1.类名需要见名知意
2.成员变量使用private修饰
3.提供至少两个构造方法:无参构造方法和带全部参数的构造方法
4.成员方法:提供每个成员变量对应的setXxx()/getXxx()如果还有其他行为,也需要写上
插件
1.t子->File->Settings->Plugins->Marketplace->ptg->ok
右键点击空白处ptg to javabean
2.alt+insert->Constructor生成构造方法
alt+insert->Getter and Setter生成方法
3.ctrl+d复制当前行到下一行
综合练习
输出语句
souf
第一部分参数,要输出的内容%s(占位);第二部分参数,填充的数据System.out.println("你好啊%s","嘿嘿");
键盘录入
遇到空格.制表符.回车就停止接收,这些符号后面的数据就不会接收了.会给后面的接收
nextInt();接收整数
nextDouble();接收小数
next();接收字符串
可以接收空格.制表符,遇到回车停止接收(暂时不用)
nextLine():接收字符串
键盘录入的两套体系不能混用