Java基础-类与对象
目录
Java基础-类与对象
1.类与对象的概述
类可以看作是一个模板,是一个抽象的概念。类是由N多个对象抽取出来的具有某类对象的共同的特征和方法的组合体。而对象是一个具体的实例,是客观存在的。
类和对象的关系是:
(1)类是抽象的,是对象的类型;
(2)对象是具体的,是类的具体的实例。
那么先有类还是先有对象呢? 在现实生活中:由N多个对象抽取出像的部分,归纳为类,再由类的特征去认识其他的对象是否属于这个类别。 在编程开发中:先编写类,再由类去创建对象。
1.1类的编写
在Java中编写类的步骤分三步
(1)编写类名,类名要起的有意义,遵循每个单词的首写字母都大写的原则
(2)编写属性,类的属性在起名字的时候,要使用名词,类的属性也称成员变量,遵循变量的命名规则即可
(3)编写方法,对象所具有的行为,遵循方法的定义规则,方法名称遵循变量的命名规则。
【实例1】编写Person类
public class Person {
String name;//姓名
int age;//年龄
String sex;//性别
public void introduce(){
System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+"sex");
}
}
1.2对象的创建和使用
对象的创建和使用也分三个步骤:
(1)对象的创建,语法格式为:类名 对象名=new 类名();
(2)为对象的属性赋值,语法格式为:对象名.属性名=值;
(3)调用对象的方法,语法格式为:对象名.方法名(参数列表);
【实例2】对象的创建和使用
@Test
public void onePersonTest() {
//1.想使用一个类,必须创建类的对象
Person person=new Person();
//2.对象名.属性
person.name="张三";
person.age=20;
person.sex="男";
//3.对象.方法名
person.introduce();
}
1.3类与对象的进阶
类是模板,通过一个模板可以创建N个对象
【实例3】创建多个对象
@Test
public void twoPersonTest() {
//1.想使用一个类,必须创建类的对象
Person person1=new Person();
//2.对象名.属性
person1.name="张三";
person1.age=20;
person1.sex="男";
//3.对象.方法名
person1.introduce();
//1.想使用一个类,必须创建类的对象
Person person2=new Person();
//2.对象名.属性
person2.name="李四";
person2.age=23;
person2.sex="女";
//3.对象.方法名
person2.introduce();
}
内存分析图如下:
(1)每个对象的属性是独立的,方法是共享的
(2)栈内存存储基本数据类型的值和引用数据类型的地址。
(3)堆内存存储new出来的对象,即引用数据类型的具体属性值
(4)栈内存存储局部变量,堆内存存储成员变量
2.成员变量与局部变量
成员变量与局部变量的区别有以下几点:
(1)声明的位置不同。 成员变量:类中,即类的属性; 局部变量:方法中、代码块中、方法的形式参数等。
(2)初始值不同。 成员变量:有默认的初始值,所有的引用数据类型默认值是nul,基本数据类型int的 默认值是0, double类型的默认值是0.0, boolean类型的默认值是 false 局部变量:必须赋初始值才能使用,否则出现“变量尚未初始化”的错误。
(3)优先级不同。 当成员变量与局部变量名称相同时,局部变量更具有优先级
【实例4】成员变量与局部变量的优先级
public class Demo {
int number=20;//成员变量
public void show(){
int number=10;//局部变量
System.out.println("number="+number);
}
public void show2() {
int number=20000;//局部变量
System.out.println("number="+number);
}
public static void main(String[] args) {
Demo demo=new Demo();
demo.show();
demo.show2();
}
}
3.构造方法
当系统提供的构造方法不能满足只是创建对象的需求时,就可以人为地去编写构造方法。
3.1构造方法的特点
(1)方法的名称与类名相同;
(2)没有任何的返回值,也不可以写void。
构造方法也是方法,既然是方法就可以重载
3.2方法重载的特点
(1)在同一个类中
(2)方法的名称相同;
(3)参数的类型、个数、顺序相同;
(4)与访问权限和返回值类型无关。
【实例5】构造方法的重载
public class Person2 {
String name;//姓名
int age;//年龄
String sex;//性别
//无参
public Person2() {
super();
}
//1个参数
public Person2(String name) {
super();
this.name = name;
}
//3个参数
public Person2(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
//输出方法
public void introduce(){
System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+sex);
}
}
【实例6】调用构造方法创建对象
//测试构造方法
@Test
public void constructorTest() {
//调用无参构造方法创建对象p1
Person2 p1=new Person2();
p1.introduce();
//调用一个参数构造方法创建对象p2
Person2 p2=new Person2("谢大脚");
p2.introduce();
//调用三个参数构造方法创建对象p3
Person2 p3=new Person2("刘能儿",45,"男");
p3.introduce();
}
【实例7】匿名对象
//测试匿名对象
@Test
public void AnonymousTest() {
//创建对象并调用方法,而且方法只能调用一次
new Person2("刘能儿",45,"男").introduce();
//创建对象并给属性赋值
new Person2().name="谢大脚";
}
上一篇: Python数据相关性分析实践记录
下一篇: 给文字以温煦的照拂
推荐阅读
-
使用Java实现面向对象编程——JAVA关键字与保留字说明及使用
-
Java面向对象(1)面向对象的思想概述以及类的介绍,封装和构造方法
-
JAVA面向对象基础(五)
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
php基础知识:类与对象5 static
-
PHP 5 数据对象 (PDO) 抽象层与 Oracle_php基础
-
【java基础】上传型和下转型对象
-
《PHP核心技术与最佳实践》PHP使用PHPRPC协议调用JAVA类
-
python基础(13):函数名的使用、第一类对象、闭包、迭代器
-
JavaScript入门之对象与JSON详解_基础知识