java学习第9天
类和对象:
万物可被看为对象,去关注了解对象的过程被称为面向对象,对对象进行的编程。
类是现实生活中一类具有共同属性和行为的事物的抽象,类的特点:类是对象的数据类型,类是具有相同属性和行为得一组对象集合、
对象的属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。
对象的行为:对象能执行的操作
类是Java程序的基本组成单位。类的属性通过成员变量来体现。行为通过成员方法来体现。方法不含Static
类的定义:public class 类名{
//定义成员变量
//定义成员方法
}
对象的使用:
创建对象: 格式:类名对象名=new 类名();
Phone p= new Phone();
使用对象:
使用成员变量
格式:对象名.变量名 例:p.brand
使用成员方法
格式:对象名.方法名 例 p.call
案例:
package myproject;
public class Student {
int age;
String name;
public void Study() {
System.out.println("好好学习,天天向上");
}
public void doHonework() {
System.out.println("敲代码");
}
}
package myproject;
public class StudentTest {
public static void main(String[] args) {
Student a=new Student();
a.age=19;
a.name="xiaoming";
System.out.println(a.name);
System.out.println(a.age);
a.doHonework();
a.Study();
}
}
对象内存图
多个对象指向不同的内存,多个对象指向相同的内存(其中一个对象值改变,另一个之也会发生改变)
成员变量和局部变量
区别(1)类中位置不同,成员变量在类中方法外,局部变量在方法内或方法声明上。(2)内存中位置不同,成员变量在堆内存,局部变量在栈内存。(3)生命周期不同:成员变量随着对象的存在而存在,随着对象的消失而消失,局部变量随着方法调用而存在,随着方法调用完就消失,(4)初始化值不同:成员变量有默认的初始值,局部变量没有默认的初始值,必须先定义,赋值,才能使用。
Private关键字
是一个权限修饰符,可以修饰成员(成员变量和成员方法),作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能被访问。
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量()”方法,用于获取成员变量的值,方法用public修饰,提供“set变量名(参数)方法,用于设置成员变量的值,方法用public修饰。
案例:
package myproject;
public class Student {
private int age;
String name;
public void setAge(int a) {
if(age>120||age<0) {
System.out.println("年龄错误");
}else {
age=a;
}
}
public int getAge() {
return age;
}
public void Study() {
System.out.println("好好学习,天天向上");
}
public void doHonework() {
System.out.println("敲代码");
}
public void show() {
System.out.println(age+" "+name);
}
}
package myproject;
public class StudentTest {
public static void main(String[] args) {
Student a=new Student();
a.setAge(19);
a.name="xiaoming";
a.show();
a.doHonework();
a.Study();
}
}
This 关键字this 修饰的变量用于指代成员的变量,方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量,方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量。
什么时候使用this呢?
解决局部变量隐藏成员变量
This:代表所在的类的对象的使用
方法被哪个对象调用,this就代表哪个对象。
package myproject;
public class Student {
private int age;
private String name;
public void setAge(int a) {
if(age>120||age<0) {
System.out.println("年龄错误");
}else {
age=a;
}
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void Study() {
System.out.println("好好学习,天天向上");
}
public void doHonework() {
System.out.println("敲代码");
}
public void show() {
System.out.println(age+" "+name);
}
}
package myproject;
public class StudentTest {
public static void main(String[] args) {
Student a=new Student();
a.setAge(19);
a.setName("xiaoming");
a.show();
a.doHonework();
a.Study();
}
}
封装:封装是面向对象的三大特征(继承,封装,多态)。
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法实现对隐藏信息的操作和访问,成员变量private,提供对应的getXxx()/setXxx()方法
封装的好处:通过方法来控制成员变量的操作,提高了代码的安全性,把代码用方法进行封装,提高了代码的复用性。
构造方法:
概述:完成对象的初始化,与构造函数类似。
构造方法的注意事项:任何对象都有构造函数,在不声明构造方法使系统会默认声明构造方法。

浙公网安备 33010602011771号