教学日志:javaSE-面向对象2
2024-09-07 06:03:26
一、局部变量和成员变量
package class4.oop1;
/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 14:47
* @Description: class4.oop1
* @version: 1.0
*/
/**
* 变量:
* 局部变量:
* 定义:在方法内定义的变量称为局部变量
* 作用域:从变量定义开始到方法结束
* 注意:
* 1、局部变量只能在当前方法中使用,其他地方都不能使用
* 2、局部变量如果没有使用,只是定义的话,不会报错,但是如果有引用那么必须先进行初始化才能使用
* 3、局部变量没有默认值,所以在使用之前必须先进行初始化
*
* 成员变量:(全局变量)
* 定义:在方法之外,类内定义的变量称为成员变量
* 作用域:整个类体都可以访问
* 注意:
* 1、成员变量有默认值,系统会根据变量的数据类型默认的给默认值
* int-->0 boolean-->false String-->null
*
*/
public class VarDemo {
//属性(成员变量)
int age = 10;
// String name;
//定义方法
public void show(){
//局部变量
String name = "小鑫鑫";
System.out.println(name);
int a;
// System.out.println(a); 错误
System.out.println(age);
}
public void test(){
System.out.println(age);
age = 20;
System.out.println(age);
//局部变量
int age = 30;
System.out.println(age);
}
public static void main(String[] args) {
//创建对象
VarDemo vd = new VarDemo();
// vd.show();
// System.out.println(name); 错误
System.out.println(vd.age);
vd.test();
System.out.println(vd.age);
// System.out.println(vd.name);
}
}
二、构造方法
package class4.oop1;
/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 15:55
* @Description: class4.oop1
* @version: 1.0
*/
/**
* 构造方法:
* 在创建对象的时候默认会调用构造方法,在堆中进行存储,主要目的是为了对成员变量进行初始化操作
* 语法:
* 修饰符:4个,后面再讲(public、protected、[default]、private)
* 返回值:构造方法没有返回值
* 方法名:构造方法的名称必须和类名保持一致
* 参数列表:和普通方法一样
* 方法体:主要是为成员变量进行初始化操作
* 注意:
* 1、当程序中没有显示的声明一个构造方法的时候,系统会给你一个默认的不带任何参数的空构造方法来供你创建对象使用
* 2、当你在程序中显示的声明了一个非空的构造方法,那么java编译器就不会再给你那个空参的构造方法了,
* 但是这时候你又想用空参的构造方法,那么只有再定义一个构造方法了
* 3、一个类中可以有多个构造方法
*
* 重载(overload):在一个类中可以有多个同名的方法,但是要求方法的参数列表不同
* 三方面的不同:
* 1、参数个数不同
* 2、参数类型不同
* 3、参数顺序不同
*
* 注意:
* 一般都需要使用构造方法的重载,因为成员变量可能会有很多个,但是我们只需要对部分成员变量进行初始化操作
*/
public class Teacher {
//属性(成员变量,全局变量)
String name;
int age;
public Teacher(){
System.out.println("空构造方法被执行了... ...");
}
//定义一个构造方法
public Teacher(String tname,int tage){
System.out.println("Teacher(String name,int age)被执行了... ...");
name = tname;
age = tage;
}
public Teacher(int tage,String tname){
}
public Teacher(int tage){
}
public void test(String name,int age){
}
public void test(int age,String name){
}
public static void main(String[] args) {
//创建对象
Teacher teacher1 = new Teacher();
teacher1.name = "小鑫鑫";
teacher1.age = 18;
System.out.println(teacher1.name);
System.out.println(teacher1.age);
Teacher teacher2 = new Teacher("张飞",20);
System.out.println(teacher2.name);
System.out.println(teacher2.age);
}
}
三、练习题
package class4.oop1;
/**
* @Auther: Yu Panpan
* @Date: 2021/12/10 - 12 - 10 - 16:51
* @Description: class4.oop1
* @version: 1.0
*/
public class Point {
//属性
int x;
int y;
public Point(){
}
//定义构造方法
public Point(int xx,int yy){
x = xx;
y = yy;
}
//定义个显示点坐标的方法
public void show(){
System.out.println("(" + x + "," + y + ")");
}
//定义提供两个坐标的方法
public void set(int xx,int yy){
x = xx;
y = yy;
}
//定义计算一个点到另外一个点的距离的方法
public double calcInstance(Point p){
return Math.sqrt((p.x-x)*(p.x-x) + (p.y-y)*(p.y-y));
}
//交换两个点坐标的值
public void changePoint(Point p){
//交换x
int temp1 = p.x;
p.x = x;
x = temp1;
//交换y
int temp2 = p.y;
p.y = y;
y = temp2;
}
public static void main(String[] args) {
// Point p1 = new Point(3,5);
// p1.show();
Point p1 = new Point();
p1.set(3,5);
Point p2 = new Point();
p2.set(6,9);
p1.show();
p2.show();
double result = p1.calcInstance(p2);
System.out.println(result);
System.out.println("两个点坐标交换之后的坐标值----------");
p1.changePoint(p2);
p1.show();
p2.show();
}
}
最新文章
- 创建maven项目时,提示 overlaps the workspace location
- LNMP(linux+nginx+mysql+php)服务器环境配置
- 用cmd命令合并N个文件
- 将slider滑块从横着变为竖着的时候坐标变换的计算
- 《Linux下sed命令的使用》
- PHP 'ext/gd/gd.c'信息泄漏漏洞
- Java或web中解决所有路径问题
- Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】
- 曲演杂坛--一条DELETE引发的思考
- iostat磁盘IO命令详解
- css回顾之左侧宽度自适应布局
- 记一次erlang语言bug导致rabbitmq的队列没有消费者的问题
- 【学习笔记】tensorflow实现一个简单的线性回归
- Nginx 教程(1):基本概念
- 【design patterns】设计模式
- 第二周学习总结-Java
- MVC自定义视图引擎地址
- 配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作
- 整理一系列优秀的Android开发源码
- JavaScript辅助响应式
热门文章
- java面试题目偏基础
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(五)-文件管理初步介绍
- ehcache详解
- OSGi系列 - 使用Eclipse查看Bundle源码
- SpringBoot(3):SpringData 数据访问
- 【Linux】【Commands】基础概念及常用基础命令
- Spring 的 init-method 和 destory-method
- JSP 文字乱码、${}引用无效
- 如何将java对象转换成json数据
- 安装火狐浏览器报错找不到VCRUNTIME140_1.DLL