JavaSE-03之类与对象

类是对现实生活中一类具有共同属性和行为的事物的抽象

对象:真实的实体,类的客观体现。

类的特点:类是对象的数据类型,类是具有相同实行和行为的一组对象的集合。

类的组成:属性和行为。

属性:通过成员变量来体现。

行为:通过成员方法来体现。这里的成员方法指的是非static修饰的方法。

局部变量和成员变量:

成员变量:类的方法外

局部变量:方法中的变量

 封装:

private是一个权限修饰符

//可以修饰成员成员变量和成员方法

//作用是保护成员不被别的类使用,被private修饰的成员体只能在本类中才能被访问。

//如果其他的类想要使用被private修饰的成员,必须用get和ste方法

this关键字

this修饰的变量用于指代成员变量,方法的形参如果与成员变量名相同,

不带this修饰的指形参,而不是成员变量

如果方法的形参没有与成员变量同名,不带this的指成员变量

什么时候用this,解决局部变量隐藏成员变量

-----------------------------

封装是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,

外界是无法直接操作的,

封装原则:将类的某些信息隐藏在类的内部,不允许程序直接访问,而是通过该类提供的方法来实现对

隐藏信息的操作和访问成员变量private,提供对应的get和set方法

封装的好处:通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性

构造方法:

作用:创建对象

功能:完成对象的数据初始化

构造方法的注意事项

1构造方法的创建 如果没有定义构造方法,系统会给出一个默认的无参构造方法

如果定义了构造方法,系统将不在提供默认的构造方法

2构造方法的重载,

如果自定义了带参的构造方法,还要使用无参的构造方法,就必须再写一个无参的构造方法

3推荐使用方式,

无论是否使用,都手工书写一个无参的构造方法。

标准类:

成员变量,构造方法,成员方法(包括get,set,普通方法等)

public class tt {
   
private String name;
   
private int age;

   
public tt() {
    }

   
public tt(String name, int age) {
       
this.name = name;
       
this.age = age;
    }

   
public String getName() {
       
return name;
    }

   
public void setName(String name) {
       
this.name = name;
    }

   
public int getAge() {
       
return age;
    }

   
public void setAge(int age) {
       
this.age = age;
    }
   
public void show(){
       
System.out.println(name+","+age);
    }
}


public class test01 {
   
public static void main(String[] args) {
       
tt t=new tt();
t.setName("hehe");
t.setAge(20);

       
t.show();

       
tt  t2=new tt("zz",20);
       
t2.show();

    }

}

---------------------------------------------

String:字符串类

通过new创建的对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同

以String  s1=“abc”方式给出的字符串,只要字符串序列相同,无论在代码中出现几次,虚拟机都只会建立一个String,并在字符串池中维护。

equals:字符串的比较。

用户登录实例:

 public static void main(String[] args) {
       
String  username="zhangshen";
       
String password="123456";
       
for(int a=0;a<3;a++){
           
Scanner  sc=new Scanner(System.in);
           
System.out.println("请输入用户名");
           
String  name=sc.nextLine();

           
System.out.println("请输入密码");

           
String   pas =sc.nextLine();
           
if(name.equals(username)&&pas.equals(password)){
               
System.out.println("登录成功");
               
break;
            }
else{
               
if(2-a==0){
                   
System.out.println("你的账户被锁定,请联系管理员");
                }
else {
                   
System.out.println("登录失败,你还有" + (2 - a) + "次机会");
                }

            }
        }
    }
}

---------------------遍历

 System.out.println("请输入一个字符串");
       
String line=sc.nextLine();

 for(int a=0;a<line.length();a++){
           
System.out.println(line.charAt(a));
        }

--------------------------------------------

键盘录入字符串并统计数量:

package com;

import java.util.Scanner;

public class Stringtest03 {
   
public static void main(String[] args) {
       
Scanner  sc=new Scanner(System.in);

       
System.out.println("请输入一个字符串");
       
String line=sc.nextLine();
       
int a=0;
       
int b=0;
       
int c=0;
       
for(int i=0;i<line.length();i++){
           
char  ch=line.charAt(i);
           
if(ch>'a'&& ch<'z'){
                a++;
            }
else if(ch>'A'&&ch<'Z'){
                b++;
            }
else  if(ch>'0'&&ch<'9'){
                c++;
            }
        }
       
System.out.println("小写字母数:"+a+"大写字母数"+b+"数字数"+c);

    }
}

-------------------------

字符串反转:

package com;

import java.util.Scanner;

public class Stringtest05 {
   
public static void main(String[] args) {
       
Scanner  sc=new Scanner(System.in);
       
System.out.println("请输入一个字符串:");
       
String  line=sc.nextLine();

       
String as=reser(line);
       
System.out.println("反转后的字符串是:"+as);


    }
   
public static String  reser(String s){
       
String ss="";
       
for(int a= s.length()-1;a>=0;a--){
           ss+=s.charAt(a);
        }
       
return ss;
    }
}

----------------------------------------------------

StringBuilder:可变字符串类

添加和反转:

package com.it01;

public class StringBuilder02 {
   
public static void main(String[] args) {
       
StringBuilder  sb1=new StringBuilder();
       
sb1.append("hhhh");
       
sb1.append("rr");
       
sb1.append("eee");
       
System.out.println(sb1);

       
StringBuilder  sb2=new StringBuilder();
       
sb2.append("hh").append("ee").append(1000);
       
System.out.println(sb2);
       
sb2.reverse();
       
System.out.println(sb2);
    }
}

b : String和  a:  StringBuilder之间的转化:

a到b,通过toString()

        b到a,通过构造方法

        StringBuilder s2=new StringBuilder("hhhhh");

        String s1=s2.toString();

b到a,通过构造方法

        String s="hhhhhh";

        StringBuilder s1=new StringBuilder(s);

package com.it01;

public class StringBuilder03 {
   
public static void main(String[] args) {
       
StringBuilder  sb1=new StringBuilder();
       
sb1.append("hhh");
       
//builderstring
       
String s=sb1.toString();
       
System.out.println(s);

       
String s2="wwwws";
       
StringBuilder  sb2=new StringBuilder(s2);
       
System.out.println(sb2);


    }
}

--------------------------------------

集合:

集合类的特点:提供一种存储空间可变的存储类型,存储的数据容量可以发生改变

集合类有很多,先了解一个:ArrayList

 ArrayList<String> array = new ArrayList<String>();

末尾添加
       
array.add("hee");

指定位置添加

     array.add(1,"aaa");

 
        for(int a=0;a<array.size();a++){
           
String s=array.get(a);
           
System.out.println(s);
        }

综合小案例:学生管理系统

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class test01 {
   
public static void main(String[] args) {
       
ArrayList<st> array = new ArrayList<st>();
       
while (true) {
           
System.out.println("欢迎来到学生管理系统");
           
System.out.println("1,添加学生");
           
System.out.println("2,删除学生");
           
System.out.println("3,修改学生");
           
System.out.println("4,查询所有的学生");
           
System.out.println("5,退出");
           
System.out.println("请输入你的选择");
           
Scanner sc = new Scanner(System.in);
           
String line = sc.nextLine();
           
switch (line) {
               
case "1":
                    add(
array);
                   
break;
               
case "2":
                    delete(
array);
                   
break;
               
case "3":
                    update(
array);
                   
break;
               
case "4":
                    findall(
array);
                   
break;
               
case "5":
                   
System.out.println("谢谢使用");
                   
System.exit(0);//虚拟机退出
           
}
        }
    }


   
public static void add(ArrayList<st> array) {
       
Scanner sc = new Scanner(System.in);
       
String name;
       
while (true) {
           
System.out.println("请输入学生姓名");
            name =
sc.nextLine();
           
boolean flag = isUsed(array, name);
           
if (flag) {
               
System.out.println("您输入的学号已经被使用,青虫新输入");
            }
else {
               
break;
            }
        }
       
System.out.println("请输入血红色呢个的年龄");
       
int age = sc.nextInt();
       
st s1 = new st();
       
s1.setAge(age);
       
s1.setName(name);
        array.add(
s1);
       
System.out.println("添加成功");
    }

   
public static boolean isUsed(ArrayList<st> array, String name) {
       
boolean flag = false;
       
for (int i = 0; i < array.size(); i++) {
           
st s = array.get(i);
           
if (s.getName().equals(name)) {
                flag =
true;
               
break;
            }
        }
       
return flag;
    }

   
public static void delete(ArrayList<st> array) {
       
Scanner sc = new Scanner(System.in);
       
System.out.println("请输入要删除的姓名");
       
String name = sc.nextLine();
       
int index = -1;

       
for (int a = 0; a < array.size(); a++) {
           
st s = array.get(a);
           
if (s.getName().equals(name)) {
                array.remove(a);
                index = a;
               
break;
            }
        }
       
if (index == -1) {
           
System.out.println("信息不存在,请重新输入");
        }
else {
           
System.out.println("成功删除");
        }
    }

   
public static void update(ArrayList<st> array) {
       
Scanner sc = new Scanner(System.in);
       
System.out.println("请输入要修改的学号");
       
String name = sc.nextLine();
       
int index = -1;
       
System.out.println("请输入新的年龄");
       
int age = sc.nextInt();
       
st s = new st();
       
s.setAge(age);
       
for (int a = 0; a < array.size(); a++) {
           
st ss = array.get(a);
           
if (ss.getName().equals(name)) {
                array.set(a,
s);
                index = a;
               
break;
            }
        }
       
if (index == -1) {
           
System.out.println("信息不存在,请重新输入");
        }
else {
           
System.out.println("成功删除");
        }
    }

   
public static void findall(ArrayList<st> array) {
       
if (array.size() == 0) {
           
System.out.println("无信息,请先添加");
           
//为了让层序不在往下执行
           
return;
        }
       
System.out.println("姓名\t\t\t年龄");
       
for (int a = 0; a < array.size(); a++) {
           
st s = array.get(a);
           
System.out.println(s.getName() + "\t\t" + s.getAge());
        }
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值