黑马程序员技术交流社区
标题: JAVA中的类 [打印本页]
作者: 秋名山车神 时间: 2018-4-7 19:50
标题: JAVA中的类
我们学习编程是为了什么?
为了把我们日常生活中实物用学习语言描述出来
我们如何描述现实世界事物?
属性 就是该事物的描述信息(事物身上的名词)
行为 就是该事物能够做什么(事物身上的动词)
Java中最基本的单位是类,Java中用class描述事物也是如此
成员变量 就是事物的属性
成员方法 就是事物的行为
定义类其实就是定义类的成员(成员变量和成员方法)
成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
类和对象的概念
a:类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类)
对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为)
举例:
类 学生
对象 具体的某个学生就是一个对象
比如:车是一个类,具体的开的奔驰、宝马,就是对象
下面就是一个很简单的学生类:
public class Student {
//成员变量
//姓名
String name;
//年龄
int age;
//成员方法
//学习的方法
public void study() {
System.out.println("好好学习,天天向上");
}
//吃饭的方法
public void eat() {
System.out.println("学习饿了要吃饭");
}
}
类的使用:
使用一个类,其实就是使用该类的成员。(成员变量和成员方法)而我们要想使用一个类的成员,就必须先拥有该类的对象,我们就要创建该类的对象。
格式:
类名 对象名 = new 类名();
对象如何访问成员呢?
成员变量:
对象名.成员变量
成员方法:
对象名.成员方法(...)
private关键字
直接使用对象名访问成员变量,会存在数据的安全问题
这个时候,我们就应该思考能不能让外界不要直接访问成员变量?
用private关键字
private:
是一个修饰符
可以修饰成员变量,也可以修饰成员方法
被private修饰的成员只能在本类中被访问
针对被private修饰的成员变量,我们会相应的给出getXxx()和setXxx()用于获取和设置成员变量的值,
封装概述
是面向对象三大特征之一
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。就像刚才说的年龄。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
成员变量private,提供对应的getXxx()/setXxx()方法
好处:
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
this关键字
A:this:代表所在类的对象引用
方法被哪个对象调用,this就代表那个对象
B:什么时候使用this呢
局部变量和成员变量重名
标准的类代码和测试类:
a:成员变量
b:构造方法
无参构造方法
带参构造方法
c:成员方法
getXxx()
setXxx()
给成员变量赋值的方式
a:无参构造方法+setXxx()
b:带参构造方法
下面就是一个标准的学生类:
public class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
测试类
public class StudentTest {
public static void main(String[] args) {
//无参构造方法+setXxx()
Student s = new Student();
s.setName("林青霞");
s.setAge(30);
System.out.println(s.getName()+"---"+s.getAge());
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |