JAVA类和对象,
JAVA类和对象,
Java类有如下作用:
定义变量
创建对象
调用类的类方法和访问类的类变量
1. 定义类
[修饰符] class 类名
{
构造器
成员变量
方法
}
如:public class Person{}
1.构造器
构造器是一个类创建对象的根本途径,系统会创建默认的构造器
[修饰符] 构造器名(形参列表)
注:构造器名与类名相同,不能定义返回值类型
如:
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
- 定义成员变量
[修饰符] 类型 成员变量名
如:public int age
3.定义方法
[修饰符] 方法返回值类型 方法名(形参列表)
如:public void say(String content){}
定义一个person类
public class Person
{
public String name; //定义成员变量
public int age;
public Person(String name, int age) //自定义构造器
{
this.name = name;
this.age = age;
}
public void say(String content) //定义方法
{
System.out.println(content);
}
}
2.对象的产生和使用
创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器可以创建这个类的实例。
Person p; //定义一个Person类型的变量
p=new Person();
也可以简化为:
Person p=new Person();
Java对象的作用有:
1、访问对象的实例变量
2、调用对象的方法
p.name=“TOM”;//访问对象的实例变量
p.say("今天是2019年2月10日");//调用对象的方法
3.对象的this引用
this关键字指向调用该方法的对象
this关键字最大的作用是让类中的一个方法,访问该类中的另一个方法或实例变量。
如:一个dog类的run方法中需要借助jump方法
//定义一个run()方法,run()方法需要借助jump()方法
public void run()
{
this.jump();
}
java允许一个成员直接调用另一个成员,可以省略this前缀
public void run()
{
jump();
}
注:static修饰的方法不能使用this引用。
this引用在构造器中可以作为默认引用,this在构造器中代表该构造器正在初始化的对象
public class Person
{
public int age;
public Person()
{
int age=0;
this.age=6;
}
}
方法详解
JAVA中的方法不能独立存在,必须属于一个类或者一个对象。所有方法必须使用“类.方法”来调用。
方法的参数传递机制
JAVA的参数传递方式是值传递。值传递就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响。
成员变量和实例变量
成员变量被分为类变量和实例变量,没有static修饰的是实例变量,有static修饰是类变量。类变量理解为类成员变量,它与类共存亡。实例变量与实例共存亡。
局部变量
形参:在定义方法签名时定义的局部变量,形参的作用域在整个方法内有效。
方法局部变量:在方法体内定义的局部变量,作用域从定义该变量的地方生效,到该方法结束时失效。
代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该代码块结束时失效。
局部变量除形参外,必须指定初始值,否则不可以访问他们。
隐藏和封装
对于一个类或者对象实现良好的封装,可以实现:
隐藏类的实现细节。
让使用者只能通过预先设定的方法来访问数据,限制对成员变量的不合理访问。
可进行数据检查,有利于保证对象信息的完整性。
提高代码的可维护性。
JAVA提供了3个访问控制符:private、protect和public
public class Person
{
//将成员变量隐藏起来
private String name;
private int age;
public void setName(String name)
{
this.name=name;
}
public Sring getName()
{
return this.name=name;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return this.age;
}
}
JAVA的包
JAVA的包提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。
深入构造器
构造器最大的作用是在创建对象的时候执行初始化。当创建一个对象时,系统会为这个对象的实例变量进行默认初始化,把所有基本类型的实例变量设为0,把所有引用类型的实例变量设为NULL。
也可以自定义构造器,对实例变量进行自定义的初始化操作。
public class ConstructorTest
{
public String name;
public int count;
public ConstructorTest(String name,int count)
{
this.name=name;
this.count=count;
}
public static void main(String[] args)
{
ConstructorTest tc=new ConstructorTest("小明”,1000);
System.out.println(tc.name);
System.out.println(tc.count);
}
}
通常把构造器设置为public访问权限,允许系统中任何位置的类来创建该类的对象。
类的继承
JAVA的继承通过extends作为继承的关键字,实现继承的类被称为子类,被继承的类称为父类。
下面是Fruit类的子类Apple类
public class Fruit
{
public double weight;
public void info()
{
system.out.println("水果“);
}
}
public class Apple extends Fruit
{
public static void main(Strings[] args)
{
Apple a=new apple;
a.weight=56;
a.info();
}
}
Apple是一个空类,但在继承Fruit类后可以访问apple对象的weigh实例和info方法。
每个JAVA类只能有一个直接父类。
重写父类的方法
子类与父类的方法同名的现象被称为方法重写。如果需要在子类方法中调用父类覆盖的实例方法,可以用super限定来调用父类被覆盖的实例方法。
调用父类构造器
子类不会获得父类的构造器,但是可以调用父类构造器的初始化代码。
public class Fruit
{
public double weight;
public Fruit(double weight)
{
this.weight=weight;
}
}
public class Apple extends Fruit
{
public String color;
public Apple (double weight,String color)
{
super(weight);
this.color=color;
}
public static void main(Strings[] args)
{
Apple a=new apple(5.6,"红色”);
}
}
相关文章
- 暂无相关文章
用户点评