教学日志:javaSE-面向对象2
一、局部变量和成员变量
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();
}
}
教学日志:javaSE-面向对象2的更多相关文章
- JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等
一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...
- JavaSE| 面向对象的三大特征
1.面向对象的基本特征之一:封装Encapsulation 目的:隐藏实现细节,让使用者方便,让代码更安全 将对象的属性和行为封装起来,其载体就是类.类通常对客户隐藏其实现细节,这就是封装的思想. 封 ...
- JavaSE| 面向对象-类的五大成员
面向对象 面向对象只是其中一种编程思想,还有很多其他的编程思想:面向过程.面向切面.面向服务编程... 面向过程的思维方式:注重步骤.过程,面向过程强调的是功能行为: 面向对象的思维方式:关注的是“对 ...
- javaSE面向对象编程
面向对象编程 构造器 构造器就是和类名相同但无返回类型的方法. public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; ...
- [javaSE] 面向对象(Object类toString)
每一个对象,都有一个在内存中的地址哈希值,这个哈希值是十六进制的 调用Object对象的hashCode()方法,返回这个对象的哈希值 调用Integer.toHexString()方法,转换十六进制 ...
- JavaSE入门学习23:Java面向对象之构造方法
学了JavaSE面向对象这一部分,也该对构造方法做一个总结了. 一构造方法 在多数情况下,初始化一个对象的终于步骤是去调用这个对象的构造方法. 构造方法负责对象的初始化工作,为 实例变量赋予合适的初始 ...
- JavaSE 基础习题整理 - 面向对象篇
大家好,今天空闲时间整理了一份JavaSE面向对象的常用习题,喜欢的朋友可以关注我.习题来自互联网,不喜勿喷 1.定义长方形类,含: 属性:宽.高(整型): 方法:求周长.面积: 构造方法3个:(1) ...
- javase基础复习攻略《三》
编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...
- Java入门姿势【面向对象3】构造方法及其重载_方法的调用
上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...
- java应届生面试考点收集
回 到 顶 部 这些知识点来自于之前去百度实习.阿里.蘑菇街校园招聘的电话面试 未完待续 JavaSE 面向对象 封装.继承.多态(包括重载.重写) 常见区别 String.StringBuffer. ...
随机推荐
- 在前端页面中使用Markdown并且优化a标签
近期在自己的项目中加入了对 Markdown 语法 的支持,主要用到的是markedjs这个项目.该项目托管在github上,地址为:https://github.com/markedjs/marke ...
- python函数初体验
函数 函数参数w 形式参数>>>>(被指定具体的值)默认参数, 实际参数是调用时候的实际指定参数 我们把函数⾥⾯的参数叫形式函数,函数实际调⽤的时候,赋予的参数叫实际函数 定义 ...
- Linux 参数代换 命令 xargs
xargs 命令也是管道命令中的一员.xargs命令的功能简单来说就是参数代换.那么什么叫做参数代换,这里首先要了解管道的概念.在 linux管道 命令一节中我们详细介绍了管道命令的概念.这里我们只是 ...
- 零基础学习java------23---------动态代理,ip,url案例
1. 动态代理 2. ip,url案例 给定的access.log是电信运营商的用户上网数据,第一个字段是时间, 第二个字段是ip地址,第三个字段是访问的网站,其他字段可以忽略不计. 第一个字段是网段 ...
- Vue相关,diff算法。
1. 当数据发生变化时,vue是怎么更新节点的? 要知道渲染真实DOM的开销是很大的,比如有时候我们修改了某个数据,如果直接渲染到真实dom上会引起整个dom树的重绘和重排,有没有可能我们只更新我们修 ...
- myatoi
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中.int atoi(const char *nptr) 函数会扫描参数 nptr字符串 ...
- 【Linux】【Services】【Package】yum
Linux程序包管理(2) CentOS: yum, dnf URL: ftp://172.16.0.1/pub/ YUM: yellow dog, Yellow ...
- 使用AOP思想实现日志的添加
//1.创建日志表syslog------->创建日志的实体类--------->在web.xml中配置监听 <listener> <listener-class ...
- @Deprecated注解功能
@Deprecated注解功能 标记不建议使用的方法,但是仍然可以用 当方法有更好的方法替换时,但是此方法还有使用时可以使用该注解
- C#文件操作(IO流 摘抄)
11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 D ...