前言

Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量。

方法的重载:成员方法的重载和构造方法的重载

方法的重载

在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载。

class Demo{
// one
void dashu(String name){
System.out.println(name);
}
// two
void dashu(String name,String score){
System.out.println(name+score);
}
// three
void dashu(String name,String score,Int age){
System.out.println(name+score+age);
}
public static void main(String[] args){
Demo demo = new Demo();
demo.dashu("dashucoding");
demo.dashu("dashucoding","一百");
demo.dashu("dashucoding","一百",10);
}
}

构造方法的重载

class Person{
String name;
int age;
float height;
float weight;
// 构造方法
public Person(){
age = 13;
name="dashu"
}
public Person(String name){
this.name = name;
}
// 构造方法的重载
public Person(String name, int age){
this.name = name;
this.age = age;
}
void print(){
System.out.println(name+age);
}
}
class Test{
public static void main(String[] args){
Demo demo1,demo2,demo3;
demo1 = new Demo();
demo2 = new Demo("dashu");
demo3 = new Demo("dashu",12);
demo1.print();
demo2.print();
demo3.print();
}
}

static关键字

static修饰的变量为静态变量

static修饰的方法为静态方法

静态变量属于类而不属于类的某个实例,可被直接类名调用,所以叫类变量

静态方法属于类而不属于类的某个实例,可被直接类名调用,所以叫类方法

非静态的成员变量和方法,必须通过实例化后通过对象名来调用

所以叫实例变量和实例方法

实例变量和实例方法通过实例调用,类变量和类方法同样也可以通过实例调用

这点要注意


main()方法

main()方法为静态的,在java虚拟机中执行main()方法时不需要创建main()方法所在类的实例就可调用,因为有static修饰。

例子

class Demo{
// 定义静态的成员变量
static int x;
int y;
// 定义静态的成员方法,用来获取值
public static int getX(){
return x;
}
// 定义静态的成员方法,用来设置值
public static void setX(int newX){
x = newX;
}
public int getY(){
return y;
}
public void setY(int newY){
y = newY;
}
}

静态方法可以调用同类的静态成员,不能调用非静态成员,反之能;静态成员可通过类名调用,也可通过实例对象,静态方法中不能使用thissuper

this关键字

this代表使用该方法的当前的对象,只用于实例方法或者构造方法中。

void setAge(int age){
this.age = age;
}
Person(String name, int age){
this.name = name;
this.age = age;
}

java中提供了不同的类和接口存放在不同的包中。

常见的包

java.applet
java.awt
java.net
java.util
java.lang
java.io

包的格式:

package 包名[.子包名[…]];

引入java包

import  包层次结构的类名;

访问权限

修饰符:

public、private、protected、友好

private变量和方法

访问权限最小,只能在同一个类中被访问,私有成员可以被对象实例调用,方法被对象实例调用,静态成员可以被类名直接调用。

class Demo{
private static String name;
private int age;
private void print(){
System.out.println(name+age);
}
public static void main(String[] args){
Demo.name = "dashu";
Demo d = new Demo();
d.age = 12;
d.print();
}
}

private,类中的私有变量不能被另一个类所引用,私有变量和方法只能在本类中使用。

class Demo{
private static String name;
private int age;
private void print(){
System.out.println(name+age);
}
public static void main(String[] args){
Demo.name = "dashu";
Demo d = new Demo();
d.age = 12;
d.print();
}
}
// 另一类
class Da{
public static void main(String[] args){
// 非法使用
Demo.name = "dashu";
// 非法调用
Demo d = new Demo();
d.print();
}
}

public 访问修饰符,它的访问权限在不同类,不同包的类中访问

默认,友好权限只能被同类或同包中的不同类引用

protected不能在不同包中的类所引用

访问权限 public protected 友好 private
同类 可以 可以 可以 可以
同包不同类 可以 可以 可以
不同包子类 可以 可以
通用 可以

类的继承

java中可以单继承,不支持多继承,一个子类只能有一个父类,不能有多个,但一个父类可以有多个派生的子类。

public class Person{
String name;
int age;
public void setAge(int age) {
this.age=age;
}
public void out() {
System.out.println("姓名:"+name+" 年龄:"+age+"岁");
}
} // 子类继承父类
public class Student extends Person{
...
}

继承性

子类继承父类,可以继承父类中非私有成员(子类和父类在同一包中),如果不在同一包中,子类只能继承父类中受保护的和公有的成员。

方法的重写

方法的重写,子类覆盖父类的方法,定义了与父类相同名,相同类型,并且相同参数的方法。

super变量

super,提供了对父类的访问,可以访问父类被子类的隐藏的变量和覆盖的方法。

结语

  • 本文主要讲解 Java基础-类与对象
  • 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

第31节:Java基础-类与对象的更多相关文章

  1. JAVA基础——类和对象

    java类与对象学习笔记 一.成员变量和局部变量 (1)定义 1.成员变量 在类中定义,用来描述对象将要有什么.(默认的成员变量值为0) 2.局部变量 在类的方法中定义,在方法中临时保存数据. 演示示 ...

  2. Java基础-类和对象

    类和对象 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. ...

  3. Java基础—类和对象

    基本概念 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提 ...

  4. Java基础——类和对象的初始化过程

    本节把类和对象的初始化所涉及到的所有代码块阐述一边. 示例代码: public class Demo { private static String name; private String age; ...

  5. java基础---类和对象(4)

    一. static关键字 使用static关键字修饰成员变量表示静态的含义,此时成员变量由对象层级提升为类层级,整个类共享一份静态成员变量,该成员变量随着类的加载准备就绪,与是否创建对象无关 使用st ...

  6. java基础---类和对象(1)

    一. 类和对象 面向对象:以属性和行为的观点去分析现实生活中的事物,将功能封装进对象, 强调具备了功能的对象,以类/对象为最小单位,考虑谁来做 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做 ...

  7. java基础---类和对象(3)

    一.Object类 java.lang.Object类是Java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接子类 如果定义一个Java类时没有使用extends关键字声明其父类,则 ...

  8. java基础---类和对象(2)

    一.继承(extends) 面向对象的三大特性之一,当多个类中存在相同属性和行为时,将这些内容抽取到一个公共类中,让多个类(子类)吸收公共类(父类.超类)中已有特征和行为,而在多个类型只需要编写自己独 ...

  9. Java基础-IO流对象之字符类(FileWrite与FileReader)

    Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是 ...

随机推荐

  1. jquery 返回浏览器顶部

    经常在网页中看到有这样的现象,点击一个按钮,然后页面会跳到页面的中指定的位置,那这种效果是怎么实现的呢? 很多网页都有这种效果:返回顶部或者跳到不同的楼层(以下是天猫的效果) 实现原理: 1.我们来看 ...

  2. 合批只是对CPU的优化,与GPU没有任何关系

    如题. 今天细想了下合批这个东西. 合批是节省了CPU的相关准备工作的工作量. 合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任 ...

  3. week07 13.4 NewsPipeline之 三 News Deduper

    还是循环将Q2中的东西拿出来 然后查重(去mongodb里面把一天之内的新闻都拿出来,然后把拿到的新的新闻和mongodb里一天内的新闻组一个 tf-idf的对比)可看13.3 相似度检查 如果超过一 ...

  4. bazel build //tensorflow/examples/android:tensorflow_demo报错: fatal error: 'cuda_runtime.h' file not found

    In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:external/eigen_archive/u ...

  5. centos 7 一键安装gitlab

    # cat /etc/redhat-release CentOS release 6.5 (Final) # strings /lib64/libc.so.6 |grep GLIBC_ 首先升级 如果 ...

  6. 安装php调试工具 Xdebug的步骤 火狐 phpstorm联调

    一 安装服务器端 1 选择你的版本 <?php phpinfo(); ?> 比如我的: 关键是这三项:PHP Version 7.3.0Architecture x86 (x86是32位系 ...

  7. PhoenixFD插件流体模拟——UI布局【Simulation】详解

    前言 之前使用RealFlow做流体模拟,但是总得和3ds导来导去,略显麻烦,特意学习PhoenixFD插件,直接在3ds中进行流体模拟.若读者有更好的流体模拟方法,欢迎在评论区交流. 原文地址:ht ...

  8. elasticsearch 动态增加副本

    动态调整副本数 PUT /ptt-new-2018-11/_settings{ "number_of_replicas": 2} 重建索引, 增加节点后要重建索引. 日志报错为网络 ...

  9. JS数组存储(两个数组相等,一个改变,另一个跟着改变)

    数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的实际的数组元素被存储在堆(heap)内存中:数组引用变量是一个引用类型的变量,被存储在栈(stack)内存中. ...

  10. 动态添加 SqlParameter 参数

    List<SqlParameter> paras = new List<SqlParameter>(); paras.Add(new SqlParameter("@m ...