类和对象
简单介绍
类:是对象共同特征的描述。
对象:是真实存在的具体东西。
在Java中,必须先设计类,才能获得对象。
如何定义类
public class 类名{
1.成员变量(代表属性,一般为名词)
2.成员方法(代表行为,一般是动词)
3.构造器
4.代码块
5.内部类
}
public class Phone{
//属性(成员变量)
String brand;
double price;
//行为(方法)
public void call(){
}
public void playGame(){
}
}
如何得到类的对象
类名 对象名 =new 类名();
案例
Phone p=new Phone();
public class Phone{
//属性
String brand;
double price;
//行为
public void call(){
System.out.println("手机在打电话");
}
public void playGame(){
System.out.println("手机在玩游戏");
}
}
public static void main(String[] args){
//创建手机的对象
Phone p=new Phone();
p.brand="vivo";
p.price=2155.55;
//获取手机对象中的值
System.out.println(p.brand);
System.out.println(p.price);
//调用手机中的方法
p.call();
p.playGame();
}
}
注意事项
定义类的补充注意事项
·用来描述一类事物的类,专业叫做:JavaBean类。
在JavaBean类中,是不写main方法的。
·以前编写main方法的类,叫做测试类。
我们可以在测试类中创建JavaBean类的对象并进行赋值调用。
public class 类名{
1.成员变量(代表属性)
2.成员方法(代表行为)
}
public class Student{
//属性(成员变量)
String name;
double height;
//行为(方法)
public void study(){
}
public void sleep(){
}
}
·类名首字母建议大写,需见名知意,驼峰模式。
·一个Java文件中可以定义多个class类,且只能有一个类是public修饰,而且public修饰的类名必须成为代码文件名。(实际开发中建议还是一个文件定义一个class类)
·成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值; 一般无需指定初始化,存在默认值。
对象的成员变量的默认规则
封装
面向对象的三大特征之一。
封装
对象代表什么,就要封装对应的数据,并提供数据对应的行为
例如:
人画圆:属于圆类。
public class Circle{
double radius;
public void draw(){
System.out.println("根据半径"+radius+"画一个圆");
}
}
封装的好处
·对象代表什么,就得封装对应的数据,并提供数据对应的行为。
·降低我们的学习成本,可以少学,少记。
private关键字
·是一个权限修饰符
·可以修饰成员(成员变量和成员方法)
·被private修饰的成员只能在本类中才能访问
public class GirlFriend{
private int age;
//set (赋值)
public void setAge(int a){
if(a>=18&&a<=50){
age=a;
}else{
System.out.println("非法数据");
}
}
//获取
public int getAge(){
return age;
}
}
this关键字
public class GirlFriend{
private String name;
private int age;
p
成员变量和局部变量
就近原则
谁离我近,我就用谁。
public class GirlFriend{
private int age;//成员变量
public void method(){
int age=10;//局部变量
System.out.println(age);
}
}
故此输出的就是局部变量的age。
若成员变量和局部变量重名,想输出成员变量的age应在前加上"this."。
构造方法
作用:在创建对象的时候给成员变量赋值。
构造方法的格式
public class Student{
修饰符 类名(参数){
//参数可有可无
方法体;
}
}
特点:
·方法名与类名相同,大小写也要一致
·没有返回值类型,连void都没有
·没有具体的返回值(不能由return带回结果数据)
执行时机:
·创建对象的时候由虚拟机调用,不能手动调用构造方法
·没创建一次对象,就会调用一次构造方法
构造方法的注意事项
1.构造方法的定义
·如果没有定义构造方法,系统将会给出一个默认的无参构造方法
·如果定义了构造方法,系统将不再提供默认的构造方法
2.构造方法的重载
·带参构造方法,和无参构造方法,两则方法名相同,但是参数不同,这就叫构造方法的重载
标准JavaBean
1.类名需要见名知意
2.成员变量使用private修饰
3.提供至少两个构造方法
·无参构造方法
·带全部参数的构造方法
4.成员方法
·提供每一个成员变量对应的setXxx()/getXxx()
`如果还有其他行为,也需要写上
补充:成员与局部变量
成员变量和局部变量的区别
成员变量:类中方法外的变量
局部变量:方法中的变量(形参也是局部变量)