java类和对象
了解类和对象前,简单提及面向对象程序设计。面向对象程序设计就是通过对象来进行程序设计,对象表示一个可以明确标识的实体。例如:一个人、一本书、一个学校或一台电脑等等。每个对象都有自己独特的标识、状态和行为。
对象的状态(特征或属性,即实例变量),由该对象的数据域来表示。 例如:一个人可以具有名字、年龄、身高、体重、家庭地址等等属性,这些就是“人这个对象的数据域”。
对象的行为(对象执行的动作,即功能),由方法来定义。例如:定义getName()来获取姓名, getHeight()获取身高,setAddress(String addr)修改地址。
如何定义类
语法:
Public class<类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…………
属性3的类型 属性3;
定义方法部分
方法1;
方法2;
…….
方法n;
}
定义类名
语法:
Public class 类名{
}
给类命名要遵循规则:
- 不能使用java中的关键字
- 不能包含任何嵌入的空格或点号””,以及下划线_ / 字符 $ 外的特殊字符。
- 不能以数字开头。
规范:
- 类名通常由多个单词组成,每个单词的首字母大写。
- 另外,类名应该简洁有意义,尽量使用完整单词,避免使用缩写词,除非该缩写词已被广泛使用,如HTML、HTTP、IP等。
1. 如何定义类(定义一个书籍类)
//定义一个通用的书籍类
public class Book {
//书名
private String bookname;
//书籍种类
private String typeSofBooks;
//书籍价格
private double bookPrices;
//书籍编号
private String bookNumber;
//无参构造方法
public Book(){}
//有参构造方法
public Book(String title,String typeSofBooks,double bookPrices,String bookNumber){
super();
this.bookname = bookNumber;
this.typeSofBooks = typeSofBooks;
this.bookPrices = bookPrices;
this.bookNumber = bookNumber;
}
//省略getter(访问器) 和 setter(修改器)
@Override
public String toString(){
return "书名:" + bookname + ",书籍种类:" + typeSofBooks
+",单价:" + bookPrices + ",书籍编号:" + bookNumber;
}
}
2. 定义一个通用的人类并有输出信息方法
//定义一个通用的"'人'类"
public class Person {
//名字
private String name;
//0不是女,1表示男
private int sex;
//年龄
private int age;
//出生地
private String birthplace;
public Person(String name, int sex, int age, String birthplace){
super();
this.name=name;
//输入的性别表示0和1
if (sex !=1 && sex !=0){
//默认性别女
this.sex = 0;
}else{
this.sex = sex;
}
this.age=age;
this.birthplace = birthplace;
}
//省略gettter 和 setter
@Override
public String toString(){
return "名字:" + name + ",性别:" + sex
+",年龄" + age + ",出生地" + birthplace;
}
}
3. 定义一个通用的水果类
4. //定义一个水果类
public class Fruit {
//属性,数据域
private String name;//名称
private String taste;//口味
//构造方法,初始化对象数据域
public Fruit(String name, String taste){
this.name = name;
this.taste = taste;
}
//行为,实例方法
public String getName(){return name;}
public void setName(String name){this.name=name;}
public String getTaste(){return taste;}
public void setTaste(String taste){this.taste=taste;}
@Override
public String toString(){
return "水果名:" + name + ",口味" + taste;
}
}
上面的几个类定义了该类对象的数据域和方法, 但这些类中都没有main()方法,所以无法运行。注意:拥有main()方法的类称为主类,是执行程序的入口。使用类中定义的数据域和方法需要创建该类的实例,然后用实例来调用。
创建使用对象
语法:
访问修饰符 返回值类型 方法名(){
//方法体
}
这里介绍一下·Camel(骆驼)命名法和Pascal(帕斯卡)命名法。
- 骆驼命名法:方法或变量名的第一个单词的首字母小写,后面每个单词的首字母大写,如showCenter、userName等。
- 帕斯卡命名法:每个单词的首字母都大写,如类名School等。
在java中,定义类的属性和方法使用骆驼命名法,定义类使用帕斯卡命名法。